1

我想创建一个循环,每次答案不是 1 2 3 或 4 .... 时都会打印错误答案。我希望它无限运行,我的不检测答案是对还是错,它只是打印出无效回答,然后再询问,然后崩溃!我不知道为什么会这样。

这是我的代码不要阅读“文本”部分,因为它是法语的,只需查看代码!

System.out.println("Veuillez Choisir 1 des 4 groupes alimentaires suivants: (1)Légumes et fruits , (2) Produit cérealiers , (3) Laits et Substitues , (4) Viandes et substitues :");
        System.out.println("\n");
    answer =  Clavier.lireIntLn();
    do {
        System.out.println("Votre choix est invalide");
         System.out.println("Veuillez Choisir 1 des 4 groupes alimentaires suivants: (1)Légumes et fruits , (2) Produit cérealiers , (3) Laits et Substitues , (4) Viandes et substitues :");
            answer =  Clavier.lireIntLn();
                continue;
        }while (answer<1 && answer>5);
4

4 回答 4

3

首先,您需要删除continue.

完成此操作后,您将需要处理此问题:

while (answer<1 && answer>5)

这永远不会发生。你需要这样做:

while (answer<1 || answer>5)

一个数字不能小于 1 且大于 5。

于 2013-10-04T22:01:51.647 回答
1

continue语句导致程序执行立即跳回,do甚至不评估 while 条件。这意味着永远不会评估条件并且循环变为无限。

去掉 continue,当 while 条件为 false 时,循环将离开。不幸的是它总是错误的,因为一个值不能低于 1高于 5。当你想继续直到用户输入 5 时,然后尝试

while (answer != 5)

当您想要(如书面)允许除 1、2、3 或 4 之外的任何答案时,请执行此操作

while(answer >= 1 && answer <= 4);
于 2013-10-04T22:00:50.617 回答
0

代码会更像这样:

do
{
    System.out.println("Veuillez Choisir 1 des 4 groupes alimentaires suivants: (1)Légumes et fruits , (2) Produit cérealiers , (3) Laits et Substitues , (4) Viandes et substitues :");
    System.out.println("\n");
    answer =  Clavier.lireIntLn();
    if( answer < 1 || answer > 4  )
    {
        //print your error message here
    }
}while(true)
于 2013-10-04T22:00:51.780 回答
0

continue 阻止它到达 while 语句。删除它,它将达到 while 条件。

于 2013-10-04T22:00:58.837 回答