Продолжить вне ошибки цикла, несмотря на то, что он находится внутри цикла - PullRequest
0 голосов
/ 02 июля 2019

Я не могу запустить этот код из-за ошибки продолжения внешнего цикла.

Я посмотрел онлайн и обнаружил, что у людей были проблемы из-за лишней точки с запятой. У меня нет этой проблемы, но я все еще получаю эту ошибку.

public class GuessingGame {

     int random;

    public void generateNumber() 
    {
       //The following lines generate and output a random number between 1 and 10
        random = (int)(Math.random()*10)+1;

    }

   //Write the guess() method below 
   public void guess()
   {
       //Use scanner to accept a user input 
       //Create a new scanner object to receive user input
          Scanner sc=new Scanner(System.in);
          System.out.println("Enter you guess between 1 to 10");
          int guess = sc.nextInt();

          //write your code below
       if (guess == random){
           System.out.println("You guessed it right, the number is " + random);

       } else if (guess<random) {
           System.out.println("You guessed too low!");
           continue;

       } else {
           System.out.println("You guessed too low");
           continue;

       }
   }

Я получаю эту ошибку всякий раз, когда запускаю ее. Ошибка: (35, 12) Java: продолжить вне цикла

Ответы [ 4 ]

1 голос
/ 02 июля 2019

Из спецификации языка :

Оператор continue может встречаться только в операциях while, do или for; операторы этих трех видов называются итерационные операторы .

Вы не используете ни один из них. if операторы не являются циклами. Компилятор вам не врет!

Если вы хотите использовать continue, поместите цикл вокруг кода, который вы хотите повторить.

0 голосов
/ 02 июля 2019

Надеюсь, это та логика, которую вы ожидаете ....

public class GuessingGame {



    public static void main(String[] args) {

            int random;

            random = (int) (Math.random() * 10) + 1;

            Scanner sc = new Scanner(System.in);
            System.out.println("Enter you guess between 1 to 10");
            int guess = sc.nextInt();

            while (guess != 0) {
                if (guess < random) {
                    System.out.println("You guessed too low!"+random);
                    System.out.println("Enter you guess between 1 to 10");
                    guess = sc.nextInt();
                    continue;
                } else if (guess > random) {
                    System.out.println("You guessed too High"+random);
                    System.out.println("Enter you guess between 1 to 10");
                    guess = sc.nextInt();
                    continue;
                }else{
                    if (guess == random) {
                        System.out.println("You guessed it right, the number is " + random);
                    }
                    break;
                }

            }

        }

}
0 голосов
/ 02 июля 2019

В Java слово continue используется только внутри цикла и запускает следующую итерацию в цикле без учета кода под оператором continue. Ваша ошибка в том, что вы вообще не используете цикл, поэтому java-компилятор не знает, что делать с оператором continue.

Я предполагаю, что вы добавили оператор продолжения, чтобы выйти из оператора if, когда закончите. Если это так, то вы можете просто удалить операторы continue, и он должен запуститься.

0 голосов
/ 02 июля 2019

попробуй вот так

import java.util.Scanner;

public class GuessingGame {

    int random;

    public GuessingGame() {

        generateNumber();

        guess();
    }

    public void generateNumber() {
        // The following lines generate and output a random number between 1 and
        // 10
        random = (int) (Math.random() * 10) + 1;

    }

    // Write the guess() method below
    public void guess() {
        // Use scanner to accept a user input
        // Create a new scanner object to receive user input
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter you guess between 1 to 10");
        int guess = sc.nextInt();

        while (guess != random) {
            // write your code below
            if (guess < random) {
                System.out.println("You guessed too low!");

            } else {
                System.out.println("You guessed too high");

            }
            guess = sc.nextInt();
        }
        System.out.println("You guessed it right, the number is " + random);
    }

    public static void main(String[] args) {
        new GuessingGame();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...