2015-09-25 2 views
-4

Я очень новый программист на Java, и я возился с вещами, которые я знал. Я создал эту программу Guessing Game, но я хочу, чтобы пользователь мог угадать 3 раза, прежде чем отображать, что пользователь потерпел неудачу и что это за номер. Вот мой код:Как сделать цикл, который только петли 3 раза

import java.util.Scanner; 
import java.util.Random; 

public class GuessingGame { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     Random rand = new Random(); 

     int random = rand.nextInt(20); 

     while (true) { 
      System.out.print("Enter a number between 1-20: "); 
      int number = input.nextInt(); 

      if (number > random) { 
       System.out.println("Too Big"); 
       System.out.println(""); 
      } else if (number < random) { 
       System.out.println("Too Small"); 
       System.out.println(""); 
      } else if (number == random) { 
       System.out.print('\f'); 
       System.out.println("Correct!"); 
       break; 
      } 
     } 
    } 
} 
+3

Нигде вообще не делает, что показывает попытку сделать петлю, 3 раза. – John3136

+2

'for-loop'? 'while (someCount <3)' ?? – MadProgrammer

+0

Какая линия, по вашему мнению, мешает ему угадать только 3 раза? – ergonaut

ответ

0

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

2

Вам нужна петля for.

for (int i = 0; i < 3; i++) { 
    // your code goes here 
} 

Что это делает это инициализирует переменную i 0, то в то время как петли i меньше, чем 3, и добавляет 1 к i после каждого цикла. Эта петля должна быть петлевой 3 раза (i = 0: loop, i = 1: loop, i = 2: loop, i = 3: stop loop, так как i уже не меньше 3).

1

Если я понимаю ваш вопрос, вы хотели бы, чтобы ваша игра играла 3 раза. Создайте вложенный цикл. Нечто подобное,

for (int i = 0; i < 3; i++) { 
    int random = rand.nextInt(20); 
    while (true) { 
     // ... 
    } 
} 

Чтобы разрешить три предположения, подсчитать количество guess х годов. Нечто подобное,

int guess = 0; 
int random = rand.nextInt(20); 
while (guess < 3) { 
    System.out.print("Enter a number between 1-20: "); 
    int number = input.nextInt(); 
    if (number > random) { 
     System.out.println("Too Big"); 
     System.out.println(""); 
    } else if (number < random) { 
     System.out.println("Too Small"); 
     System.out.println(""); 
    } else if (number == random) { 
     System.out.print('\f'); 
     System.out.println("Correct!"); 
     break; 
    } 
    guess++; 
} 
+0

Спасибо! Извините, что спросил, как я сказал, что я новичок в этом. Как я могу сделать это после трех попыток, которые он показывает, что они не смогли угадать номер? –

+0

Сделайте логическую переменную (true или false), которая определяет, правильно ли пользователь. Если это так, установите значение true. Сделайте значение по умолчанию false. После того, как вы закончите цикл, если верно false, тогда отобразите номер. – M3579

+0

Или, если 'guess == 3' (после цикла), они ошибались три раза. –

1
import java.util.Scanner; 
import java.util.Random; 

public class GuessingGame { 
    public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     Random rand = new Random(); 

     int random = rand.nextInt(20); 

     for(int i=0; i<3;i++) { 
      System.out.print("Enter a number between 1-20: "); 
      int number = input.nextInt(); 

      if (number > random) { 
       System.out.println("Too Big"); 
       System.out.println(""); 
      } else if (number < random) { 
       System.out.println("Too Small"); 
       System.out.println(""); 
      } else if (number == random) { 
       System.out.print('\f'); 
       System.out.println("Correct!"); 
       break; 
      } 
     } 
    } 
} 
Смежные вопросы