не ошибка оператора, незаконный запуск типа

#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");
}