Ключевое слово void, его особенности и return [дубликат]

152
28 апреля 2019, 06:50

На данный вопрос уже ответили:

  • Ключевое слово void и возврат из функции 3 ответа

Пример:

public class Person {
    public static void main(String[] args) {
        Person person = new Person();
        person.run(12,2);
    }
    public void run(int a, int b){
        System.out.println(a+b);
    }
}

Выводится в консоль: 14

Пример 2:

public class Person {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person.run(12, 2));
    }
    public int run(int a, int b) {
        return a + b;
    }
}

Выводится в консоль: 14

Не могу понять зачем нам void, если мы можем написать public **int** run(...)

Пытаюсь разобраться с void и return.

Answer 1

Весь смысл функции с типом void - это действия без отчета. Если функция не void , то она по возвращает какой-то результат и заканчивает работу.
В первом примете, если у вас, к примеру, нет доступа к консоли, вы никогда не узнаете о том, что функция выполнена.
Во втором случаи, функция отсылает "отчет" о том, что она сделала, и вы видите результат. И так, void используем для функций, которые работают независимо и мы не ждем от них "отчета".

Ключевое слово return прекращает выполнение функции. Можно использовать и в циклах (break), функциях.

Например,

public void count(int stop) {
     for(int i = 0; i < 100; i++) {
           System.out.println(i);
           if (i == stop) { return; }
     }
}

В данном случаи мы в функцию передаем число, после которого следует прекратить вывод чисел.

Answer 2

void означает что функция не возвращает результат, все остальные варианты (например int) будут обозначать тип возвращаемого значения и что функция обязана будет что-то вернуть.

Вот так компилироваться не будет, потому что нет return'а:

public int run(int a, int b) {
    int c = a + b;
    // return c;
}

void функции могут использовать return, но тот ничего не будет возвращать, например:

void log(String text) {
    // Если строка -- null, выходим из функции 
    if (text == null) {
        return;
    }
    System.out.println("text: " + text);
}
log("123");
log(null);
log("abc");
READ ALSO
Ошибка JNI: cannot open shared object file: No such file or directory

Ошибка JNI: cannot open shared object file: No such file or directory

Есть приложение, которое работает на двух нодахЗапускаю его на каждой ноде таким скриптом:

159
Как сделать сглаживание шрифта?

Как сделать сглаживание шрифта?

В Гугле нашел свойство -webkit-font-smoothing, которое работает пока лишь в Сафари и Хроме(у меня оно вообще не работает)Также видел, что можно добавить...

142