#java
#java
Вопрос:
import java.util.*;
public class ulang {
public static void main(final String[] args) {
int a;
int b;
int sum;
Scanner scan = new Scanner(System.in);
System.out.println("Enter num 1: ");
a = in.nextLine();
System.out.println("Enter num 2: ");
b = in.nextLine();
{
sum = a b;
}
for (i = 0; i < 5; i ) {
(sum >= 10)
System.out.println("Congratulations");
else
System.out.println("Sum of the number is Less than 10");
}
}
}
Я слаб в цикле, особенно в Java. Поэтому мне нужны некоторые исправления в моем кодировании, но я понятия не имею, как это исправить.
Кодирование должно выполняться следующим образом: пользователю необходимо вставить 2 числа, и программа вычислит сумму обоих чисел. После этого программа определит, равна ли сумма sum>= 10 или <10. Если сумма>= 10, появится надпись «Поздравляю», но если она равна <10, то появится надпись «Сумма чисел меньше 10». Как это исправить?
Комментарии:
1. Вы пропускаете if раньше (сумма> = 10)
2. Я взял на себя смелость исправить ваш отступ для вас (однако не исправил ни одной ошибки компилятора).
3. И для чего нужен цикл? Почему вы печатаете одно и то же сообщение 5 раз?
4. В будущем обратите внимание, что сообщения об ошибках снабжаются номером строки. Это часто бывает довольно полезно.
Ответ №1:
Это непосредственная проблема:
(sum>=10)
Я полагаю, вы имели в виду, что это if
утверждение:
if (sum>=10)
Дополнительно:
- Вы пытаетесь использовать
in
переменную, но вызывается переменная сканераscan
Scanner.nextLine()
возвращаетString
— я подозреваю, что вы хотелиScanner.nextInt()
-
В вашем
for
цикле используется переменная, которая не была объявлена. Вы, вероятно, имели в виду:for (int i = 0; i < 5; i )
Несколько других предложений, хотя:
- Сумма не будет меняться между итерациями цикла… почему вы вообще зацикливаетесь?
- У вас есть новый блок, в котором вы вычисляете сумму, но без видимой причины. Почему?
-
Обычно рекомендуется объявлять переменные в момент инициализации, например
Scanner scan = new Scanner(System.in); System.out.println("Enter num 1: "); int a = scan.nextInt(); System.out.println("Enter num 2: "); int b = scan.nextInt(); int sum = a b;
-
Учитывая, что вы хотите выполнить одно и то же базовое действие (вывод сообщения на экран) независимо от того, был ли пользователь успешным или нет, вы можете рассмотреть возможность использования условного оператора следующим образом:
String message = sum >= 10 ? "Congratulations" : "Sum of the number is Less than 10"; System.out.println(message);
Это позволило бы вам реорганизовать цикл, чтобы оценить условие только один раз:
String message = sum >= 10 ? "Congratulations" : "Sum of the number is Less than 10"; for (int i = 0; i < 5; i ) { System.out.println(message); }
Комментарии:
1. хорошо, я это уже исправил,,я ставлю if (sum>= 10) .. но все равно получена ошибка » ‘else’ без ‘if’, <identifier> ожидаемый, ожидаемый интерфейс класса или перечисление, незаконный запуск типа, … вся эта ошибка в цикле. почему ?
2.@EzwanAbid: Неясно, как вы это изменили, но использование
if (sum >= 10)
работает, поверьте мне. Эта проблема не имеет ничего общего с циклом, хотя в вашемfor
цикле действительно есть проблема (вы не объявилиi
), как я упоминал в ответе.3. ах, забыл вам сказать… я делаю цикл, потому что хочу выполнить цикл программы 5 раз.. я имею в виду от пользовательского ввода до вывода (поздравления / меньше 10) … мне нужно сделать это 5 раз.. вот почему я создаю цикл
4. @EzwanAbid: Ну, тогда вам нужно изменить, где вы зацикливаетесь, не так ли? В настоящее время вы собираетесь только обойти заключительную часть. Похоже, вам может понадобиться цикл, который охватывает практически весь
main
метод. Возможно, вы даже захотите перенести всю работу в отдельный метод, а затем сделать свойmain
метод просто циклом, который вызывает метод внутри цикла.5. ах, теперь я упоминаю об этом .. я только перебираю раздел вывода .. и раздел ввода, в который я его не привел loop..am я прав ? итак, все, что мне нужно сделать, это перевести раздел ввода в цикл? просто скопируйте и вставьте в него?
Ответ №2:
(sum>=10)
В начале этой строки требуется if, иначе она не будет прочитана как ветвь.
if (sum >= 10)
Вы также должны назвать свой основной класс Ulang, потому что идентификаторы классов Java должны начинаться с заглавной буквы для удобства чтения.
Цикл должен выглядеть следующим образом:
for (int i = 0; i < 5; i ) {
Первая часть определяет счетчик и присваивает ему ноль. Второе — это ваше условие, а последнее имеет значение для вас.
Ответ №3:
for (int i = 0; i < 5; i ) {
if (sum >= 10)
System.out.println("Congratulations");
else
System.out.println("Sum of the number is Less than 10");
}