2016-07-26 270 views
-4

最近,我一直在练习上的Java我的新手教程, 但是我被困与if else语句,如果else语句

我的主要重点是让用户如果用户尝试大于5次写,它将返回false,否则它将返回true。

任何帮助将不胜感激。

int userTry = 0; 
double value1 = 0; 
Scanner useranswer1 =new Scanner(System.in); 

if(userTry == 5){ 
    do{ 
     System.out.println("What is 10 divided by 4?"); 
     value1 = useranswer1.nextDouble(); 

    } 
    while(value1 != 2.5); 
    System.out.println("You got the right answer"); 
    } else { 

    } System.out.println("You have zero more tries"); 
} 
+1

你必须把你的循环周围如果不是相反 –

+0

做一个循环,它允许人去尝试最多五次。一个'for''循环似乎对此很好。如果得到正确的答案(使用'if'来检查这个)'break'循环。 – ifly6

+1

改变你while while循环包括尝试次数 –

回答

1

试试这个:

do{ 
    System.out.println("What is 10 divided by 4?"); 
    value1 = useranswer1.nextDouble(); 
    userTry++; 
} 
while(value1 != 2.5 && userTry != 5); 
if(userTry == 5){ 
     System.out.println("You have zero more tries");  
} else { 
    System.out.println("You got the right answer"); 
} 
+2

Jérèm错误,因为在用户尝试== 4时,你会增加到5,但他实际上得到了正确的答案。但是你会打印出“你没有更多的尝试”。 – Deceiver

+0

当然,这只是一个提示... –

+0

够公平的。 ;) – Deceiver

2

关键是要设置您do-while循环的基础上,检查该用户没有得到正确的值,如果他们有足够的重试条件。

如果用户获得了正确的值,他们已经完成了所需的重试次数,否则尝试次数为零。希望这可以帮助。

int userTry = 0; 
double value1 = 0.0; 
Scanner useranswer1 = new Scanner(System.in); 

do { 
    System.out.println("What is 10 divided by 4?"); 
    value1 = useranswer1.nextDouble(); 
} while (value != 2.5 && ++userTry < 5); // NOTE: pre-increment and check. If you like to have a safer version, move this increment inside the while loop. 

if (value1 != 2.5) { 
    System.out.println("You have zero more tries"); 
} else { 
    System.out.println("You got the right answer!"); 
} 
3

尝试以下操作:

int userTry = 0; 

    double value1 = 0; 
    Scanner useranswer1 =new Scanner(System.in); 

    for (int userTry = 5; userTry > 0; userTry--) 
     System.out.println("What is 10 divided by 4?"); 
     value1 = useranswer1.nextDouble(); 
     if (value1 == 2.5) break; 
     System.out.println(); // empty line 
    } 

    if (value1 == 2.5) { 
     System.out.println("You got the right answer"); 
    } else { 
     System.out.println("You have zero more tries"); 
    } 
} 
+0

这个答案比没有理由做一个'do-while'循环更有意义 – ifly6

+0

难道是while while循环是当天的话题,循环还没有被讨论过吗?这看起来像是一个学习者的情况。 –

2
int count = 0; 
    double trueAnwer = 6.66; 
    while (true) { 
     count++; 
     Scanner useranswer1 =new Scanner(System.in); 
     if (trueAnwer == useranswer1.nextDouble()) { 
      System.out.println("You got the right answer"); 
      return; 
     } 
     if (count==5) { 
      System.out.println("You have zero more tries"); 
      return; 
     } 
     System.out.println("This is "+count+" times"); 
    } 
+0

你不想为循环的每次迭代实例化你的'useranswer1' - 否则好。 –