Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 03.02.2015
Сообщений: 78
1

Return возвращает 0

11.02.2018, 11:59. Показов 1440. Ответов 6

Author24 — интернет-сервис помощи студентам
Знатно туплю.
Почему печатается 0, а не 6 ?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class J001 {
    public static void main(String[] args) throws Exception {
        int a = 1, b = 3;
 
        int answer = 0;
 
        if(a == b) {
            System.out.print(a);
        } else {
            if(a < b) {
                Sum(a,b,answer);
                System.out.print(answer);
            } else {
                Sum(b,a,answer);
                System.out.print(answer);
            }
        }
    }
 
    private static int Sum(int a, int b, int answer) {
        for(int i = a; i <= b; i++) {
            answer += i;
        }
        return answer;
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2018, 11:59
Ответы с готовыми решениями:

Что возвращает оператор return?
довольно часто в книгах опускают оператор return, просто пишут,что он возвращает значение. а что...

Что это isOk(int s),setAge(int g){if(isOk(g){age=g;return true;}else{.;return false;}}.getName(){return name;}?
package com.company; import java.io.Serializable; public class person implements Serializable {...

Оператор return
Подскажите пожалуйста, как вернуть строку в зависимости от условия, а то, что написал не работает и...

Вывод с return
Здравствуйте, недавно начал изучать java. Столкнулся с проблемой в методе. Я создал метод int...

6
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
11.02.2018, 12:11 2
Потому что аргументы в джаве передаются по значению, и answer внутри функции Sum - это копия answer, созданного в main, а не оно само. Тебе вообще не надо передавать answer в функцию, используй возвращаемое значение так: answer = Sum(a, b)
1
Автоматизируй это!
Эксперт Python
7107 / 4610 / 1215
Регистрация: 30.03.2015
Сообщений: 13,236
Записей в блоге: 29
11.02.2018, 12:13 3
Лучший ответ Сообщение было отмечено Artemonim как решение

Решение

Цитата Сообщение от Artemonim Посмотреть сообщение
Знатно туплю.
именно так, потому что answer в строке 11 и строке 24 это две разные переменные, не обманывайся одинаковым названием.
Почитай как в джава передается значение.
Если уж у тебя метод возвращает инт значение, то присвой его какой-нибудь переменной
вот как решить
Java
1
2
                answer = Sum(a,b,answer);
                System.out.print(answer);
0
75 / 61 / 29
Регистрация: 20.04.2015
Сообщений: 415
11.02.2018, 20:09 4
не понял вопроса... метод и должен был вывести 0
0
1 / 1 / 1
Регистрация: 03.02.2015
Сообщений: 78
11.02.2018, 23:20  [ТС] 5
Цитата Сообщение от WinniPuh Посмотреть сообщение
метод и должен был вывести 0
По коду должен, а по ТЗ - нет
0
2677 / 1995 / 496
Регистрация: 17.02.2014
Сообщений: 9,357
12.02.2018, 09:02 6
Цитата Сообщение от Artemonim Посмотреть сообщение
Sum(b,a,answer);
возвращает значение в никуда!
попробуй так System.out.print(Sum(b,a,answer));
0
75 / 61 / 29
Регистрация: 20.04.2015
Сообщений: 415
12.02.2018, 10:16 7
я пологаю ты складываешь переменные a b и ansver 1+3+0 должно получиться 4, но это значение ты никуда не передаешь а потом просто выводишь в кансоль answer
System.out.println(answer);

но его значение 0
такое как и изначально вот и получается 0
0
12.02.2018, 10:16
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2018, 10:16
Помогаю со студенческими работами здесь

Запутался с return
Подскажите как сделать возврат StringBuilder из цикла while() метода PriceGo ) Что-то застрял на...

ForEach, return
Здравствуйте, можно ли так сделать: return temp.forEach(System.out::printing); Добавлено через...

Else return statement
Почему если я пишу данный код, мне выдает ошибку: int factorialWithRecursion(int n, int result)...

Почему не срабатывает return?
всем привет. подскажите почему метод не завершается по return? public void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru