2013-11-03 4 views
-3

У меня есть эта программа, которая генерирует случайное число, которое вы должны угадать. Если он слишком высокий или слишком низкий, он говорит вам. Мне нужно спросить после каждой догадки, хотите ли вы продолжить. Я пробовал использовать вложенный оператор if и получать всевозможные ошибки. Я использую jgrasp для кодирования этого. Кстати, я новичок в кодировании.Java-цикл на основе ввода пользователем

import java.util.*; 
import java.text.*; 

public class redo 
{ 
    public static void main(String [] args) 
    { 
    //Generate a random number and set values 
    Random r = new Random(); 
    int number = r.nextInt(100); 
    System.out.println(number); 
    boolean win = false; 

    //Loop  
    while (win == false) 
    { 

    //Input guess 
    System.out.println("Please guess a number 1-100:"); 
    Scanner scan = new Scanner(System.in); 
    int guess = scan.nextInt(); 

    //Compare input with correct answer 
    if (guess == number) 
     { 
     System.out.println("You are correct! the number was " + number + "!"); 
     win = true; 
    } 
     else if (guess > number) 
     { 
     System.out.println("That number is too high."); 
     } 
     else if (guess < number) 
     { 
     System.out.println("That number is too low."); 
     } 

    } 
    } 
} 

EDITED

import java.util.*; 
import java.text.*; 

public class redo 
{ 
public static void main(String [] args) 
{ 
//Generate a random number and set values 
Random r = new Random(); 
int number = r.nextInt(100); 
System.out.println(number); 
    boolean win = false; 

    //Loop 
    while (win == false) 
    { 

//Input guess 
System.out.println("Please guess a number 1-100:"); 
    Scanner scan = new Scanner(System.in); 
    int guess = scan.nextInt(); 

//Compare input with correct answer 
    if (guess == number) 
    { 
    System.out.println("You are correct! the number was " + number + "!"); 
    win = true; 
    } 
    else if (guess > number) 
    { 
    System.out.println("That number is too high."); 
    } 
    else if (guess < number) 
    { 
    System.out.println("That number is too low."); 
    } 

    System.out.println("Would you like to guess again? Please enter Y or N: "); 
    String yesorno = scan.next(); 
    char nooryes = yesorno.charAt(0); 
    char No = 'N'; 
    char no = 'n'; 
    char Yes = 'Y'; 
    char yes = 'y'; 

    while (win == true) 

    if (nooryes == No || nooryes == no) 
    { 
    win = true; 
    } 
    else if (nooryes == Yes || nooryes == yes) 
    { 
    win = false; 
    } 
    else 
    { 
    System.out.println("I can't read that. Please enter Y or N: "); 
    } 


     } 
    }  
} 
+2

В чем вопрос? – Tdorno

+1

Какая ошибка вы получаете? –

+0

«Мне нужно спросить после каждой догадки, хотите ли вы продолжить». – 3vD

ответ

1

Вы можете попробовать добавить новое логическое значение в то время как проверки цикла.

while (win == false && shouldContinue == true) 

И задают вопрос после,

if (guess == number) 
     { 
     System.out.println("You are correct! the number was " + number + "!"); 
     win = true; 
    } 
     else if (guess > number) 
     { 
     System.out.println("That number is too high."); 
     } 
     else if (guess < number) 
     { 
     System.out.println("That number is too low."); 
     } 

Кстати, пожалуйста, укажите свой код, который дал ошибку, если это не работает.

+0

Итак, я добавил что-то, и я, вероятно, прошел долгий путь, но он работает по большей части. Единственные проблемы, с которыми он столкнулся сейчас, - это если вы угадали правильный номер, он все еще спрашивает, хотите ли вы снова угадать. Другой - если вы вводите что-либо, кроме y или n, оно продолжается бесконечным циклом. – 3vD

+0

Итак, перед тем, как задать вопрос, добавьте 'if (guess == number)' И о бесконечном цикле я бы использовал 'if (x == 'y') {shouldContinue = true;} else {shouldContinue = false; } ' –

Смежные вопросы