2016-04-27 3 views
-3

Я пытаюсь написать код, который попросит меня вставить мой возраст. Если его менее 10 лет, я хочу, чтобы он спросил меня еще 3 раза. Если его выше 10, он скажет «добро пожаловать». Я не мог этого сделать.Петля со сканером

package newProject; 
import java.util.Scanner; 
    public class mainclass { 
     public static void main(String[] args) { 

      System.out.println("Enter your age"); 
      Scanner age= new Scanner(System.in); 

      int userage= age.nextInt(); 
      if(userage<10){ 
       for(int x = 3;x<3;x++){ 
        System.out.println(userage+ "is too young"); 
        System.out.println("Enter your age"); 
        int userage1= age.nextInt(); 
       } 
      }else{ 
       System.out.println("welcome"); 
      } 
     } 
    } 
+3

Помимо серьезных проблем с форматированием с вашим кодом, нам нужна дополнительная информация, чем просто «это не удалось сделать». См. [Как спросить] (http://www.stackoverflow.com/help/how-to-ask). – CodeMouse92

ответ

2

Независимо от смысла вашей программы, ваша ошибка в значении, установленном в переменной x. Вы должны установить для x значение 0 для итерации 3 раза.

System.out.println("Enter your age"); 
    Scanner age= new Scanner(System.in); 

    int userage= age.nextInt(); 
    if(userage<10) { 
    // You have to set x to 0 not 3 
    for(int x = 0;x<3;x++){ 
     System.out.println(userage + "is too young"); 
     System.out.println("Enter your age"); 
     int userage1= age.nextInt();} 
    } 
    else{ 
     System.out.println("welcome"); 
    } 
+0

Я только практикую java, я узнаю его сам сегодня ... Когда я пишу ваш код, машина печатает первый ответ, который я пишу, например, если я пишу 5, то не имеет значения, что я пишу дальше, он держит печать " 5 слишком молод » –

+0

Это потому, что если вы видите первый вывод в цикле for, вы используете переменную userage, но после того, как вы прочитаете переменную userage1, если вы хотите решить эту проблему, второй пользователь должен выглядеть примерно так: userage = age.nextInt(); вместо новой переменной userage1. Ты понимаешь меня? –

0

Вот проблема:

for(int x = 3;x<3;x++) 

Вы установили цикл for для запуска до тех пор, как x меньше 3, но вы объявили x равным 3. Таким образом, условие x<3 никогда не выполняется, поэтому цикл никогда не запускается. Вот что вы должны сделать:

for (int x=0; x<3; x++) 

Кстати, пожалуйста, используйте правильный отступ для форматирования кода. Это довольно трудно читать без отступов.

0
package newProject; 
import java.util.Scanner; 
public class mainclass { 
    public static void main(String[] args) { 
     System.out.println("Enter your age"); 
     Scanner age= new Scanner(System.in); 

     int userage= age.nextInt(); 
     if(userage<10){ 
      for(int i = 0;i<3;i++){ 
       System.out.println(userage+ "is too young"); 
       System.out.println("Enter your age"); 
       int userage1= age.nextInt(); 
      } 
     } 

     else{ 
      System.out.println("welcome"); 
     } 
    } 
} 
+0

Это действительно просто повторение существующих ответов. – Pang

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