Перейти к содержанию
Авторизация  
desolator

Вызов Функции, Возвращаемое Значение

Рекомендуемые сообщения

Всех с наступившим новым годом.

Продолжаю изучать java ну и соответственно у меня появились вопросы.

Вычисление минимума из двух чисел:

  • public class MethodCall - публичный класс MethodCall
  • {
  • public static void main(String[] args) - метод main, массив String[], args название массива String[].
  • {
  • int a = 5, b = 7; - объявляем переменную "а" и даем ей значение "5" и переменную b со значение 7.
  • int m = min(a, b; объявляем переменную "m" которая равна минимальным значениям переменных (a, b
  • System.out.println("Minimum is " + m); Выводим на экран Minimum is "m", тут я не уверен??
  • }
  • public static int min(int c, int d) - метод минимальное значение переменных (с,d), тут я тоже не уверен??
  • {
  • int m2; - объявляем переменную m2
  • if (c < d) - если переменная с меньше d
  • m2 = c; m2 будет равно с
  • else - иначе
  • m2 = d; пtременная m2 будет равна d
  • return m2; - вычисляем значение переменной m2, сохраняем результат и возвращаем результат, завершаем работу функции??
  • }
  • }

Помогите разобраться, укажите где я не прав, "??" это строки где я не совсем понимаю как это работает. Вот еще более того я не могу представить где и как этот код применяется на практике т.е в рабочих программах и т.п

Изменено пользователем desolator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • System.out.println("Minimum is " + m); Выводим на экран Minimum is "m", тут я не уверен??

Просто вывод на экран вычисленного числа m.

  • public static int min(int c, int d) - метод минимальное значение переменных (с,d), тут я тоже не уверен??

Не суть важно как называется метод. Главное, что это метод типа int(соответственно возвращаться из него int) и агрументами int,int.

  • return m2; - вычисляем значение переменной m2, сохраняем результат и возвращаем результат, завершаем работу функции??

Return - само по себе прерывает выполнение метода. Не вычисляем, а возвращаем то значение m2 которое оно приобрело в ходе выполнения метода.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • System.out.println("Minimum is " + m); Выводим на экран Minimum is "m", тут я не уверен??

Просто вывод на экран вычисленного числа m.

  • public static int min(int c, int d) - метод минимальное значение переменных (с,d), тут я тоже не уверен??

Не суть важно как называется метод. Главное, что это метод типа int(соответственно возвращаться из него int) и агрументами int,int.

  • return m2; - вычисляем значение переменной m2, сохраняем результат и возвращаем результат, завершаем работу функции??

Return - само по себе прерывает выполнение метода. Не вычисляем, а возвращаем то значение m2 которое оно приобрело в ходе выполнения метода.

 

Метод типа int. int это ведь целые числа, а метод int это.. в нем могут быть аргументы только переменных с типом int, или...

return - Просто я вычитал что то типа, когда java машина выполняет команду return она вычисляет значение выражения стоящего справа от return, сохраняет это значение и завершает работу функции. Вроде бы как то с горем пополам понятно. Возвращаем значение стоящие справа от return.

Спасибо за ответ

Изменено пользователем desolator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Теперь я не знаю как написать функцию, которая вычисляет минимум из трёх чисел.

Вот что я написал:

public class Solution
{
public static void main(String[] args)
{
int a = 10, b = 20, c = 30;
int m = min(a, b, c);
}
public static int min(int a, int b, int c)
{
int m;
if (a < 
m = a;
if (b < a)
m = b;
if (a < c)
m = a;
if (b < c)
m = b;
else
m = c;
return m;

}
}

Не понимаю что не так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, есть такой замечательный класс java.lang.Math который уже содержит в себе всё что вы ищите.

http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще, есть такой замечательный класс java.lang.Math который уже содержит в себе всё что вы ищите.

http://docs.oracle.c.../lang/Math.html

Я увидел только то что min возвращает меньшее число из двух значений например min(int b, int a) я это интуитивно понимал. Но о трёх значениях я не нашел ни слова ;(

Изменено пользователем desolator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что мешает делать так?

Math.min(a, Math.min(b, c));

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что мешает делать так?

Math.min(a, Math.min(b, c));

Видимо мой мозг ;[

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3-ю задачу решил вот так (не без помощи c ЗГ)

Yj

public class Solution
{
public static void main(String[] args)
{
int a = 10, b = 20, c = 30;
int m = min(a, b, c);
}
public static int min(int a, int b, int c)
{
int tmp = (a <=  ? a : b;
return (tmp <= c) ? tmp : c;

}
}

И чем дальше я иду тем больше п**

int tmp = (a <= b ) ? a : b; - Не понимаю как это работает

return (tmp <= c) ? tmp : c; - Не понимаю как это работает

Изменено пользователем desolator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 2 сообщения т.к мне форум сказал что слишком много смайликов.

Необходимо написать функцию которая вычисляет минимум из 4-х чисел.

public static int min(int a, int b, int c, int d) этим

 

/**
* Created with IntelliJ IDEA.
* User: qwerty
* Date: 02.01.14
* Time: 23:42
* To change this template use File | Settings | File Templates.
*/


public class Solution {

public static void main(String[] args)
{
int a = 1, b = 2, c = 3, d = 4;
int m = min(a, b, c, d);
System.out.println("Minimum is " + m);
}
public static int min(int a, int b, int c, int d)
{
int m;
if (a < b & a < c & a < d)
m = a;
if (b < a & b < c & b < d)
m = b;
if (c < a & c < b & c < d)
m = c;
if (d < a & d < b & d < c)
m = d;


else
m = 0;
return m;
}
{
int a = 10, b = 20;
int m1 = min(a, ;
}
public static int min(int a, int 
{
int m1;
if (a < 
m1 = a;
else
m1 = b;
return m1;


}
}

Не понимаю, совсем не понимаю. С таким кодом оно вычисляет минимальное число 0. Видимо из-за else m = 0;. Маленькую подсказку, пожалуйста.

Изменено пользователем desolator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем городить такое...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем городить такое...

Видимо слишком много времени я провел над изучением. Наверное пора поспать :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо слишком много времени я провел над изучением. Наверное пора поспать :(

 

/**
* @author Akumu
* @date 03.01.14
*/
public class MultiMin
{
   public static void main(String[] args)
   {
       min(1);
       min(5, 4, 3, 2, 1);
   }

   // методы "min" имеет неопределенное кол-во аргументов
   public static int min(int... args)
   {
       if(args.length == 0) // функции ничего не было передано
           return -1;

       int result = Integer.MAX_VALUE; // начинаем сравнение с максимальной величиной которую может принять int

       for (int arg : args) // перебираем все элементы
       {
           if(arg < result)
               result = arg;
       }

       return result;
   }
}

 

Это как пример, если вас интересует реализация "универсального минимизатора".

Я вам выше уже скидывал ссылку на документацию класса Math, в котором уже есть реализация всего, что вы искали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это как пример, если вас интересует реализация "универсального минимизатора".

Я вам выше уже скидывал ссылку на документацию класса Math, в котором уже есть реализация всего, что вы искали.

 

 

Math я не могу использовать т.к задание дано по шаблону по которому его необходимо выполнить.

 

Попытался вот так, высчитывает и выводит на экран минимальное значение 2 - не верный ответ.

public class Solution {

public static void main(String[] args)
{
int a = 1, b = 2, c = 3, d = 4;
int m = min(a, b, c, d);
System.out.println("Minimum is " + m);
}
public static int min(int a, int b, int c, int d)
{
int tmp = (a <=  ? a : b;
tmp = (b <= c) ? b : c;
return (tmp <= d) ? tmp : d;



}
{
int a = 10, b = 20;
int m1 = min(a, ;
}
public static int min(int a, int 
{
int m1;
if (a < 
m1 = a;
else
m1 = b;
return m1;


}
}

Яхз. на b - B можно не обращать внимания, это форум так делает :)

Вся то загвоздка здесь

int tmp = (a <= B) ? a : b;

tmp = (b <= c) ? b : c;

return (tmp <= d) ? tmp : d;

А я только примерно понимаю как оно работает.

Изменено пользователем desolator

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда используйте модель что я скинул.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...