无限循环?

时间:2013-10-04 21:57:30

标签: java loops

我想制作一个循环,每次答案不是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 个答案:

答案 0 :(得分:3)

首先,您需要删除continue

执行此操作后,您需要处理此问题:

while (answer<1 && answer>5)

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

while (answer<1 || answer>5)

您不能将数字小于1且大于5。

答案 1 :(得分:1)

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

删除continue,当while条件为false时,将保留循环。不幸的是,它总是错误的,因为一个值不能低于1 高于5.如果你想继续直到用户输入5,那么试试

while (answer != 5)

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

while(answer >= 1 && answer <= 4);

答案 2 :(得分: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)

答案 3 :(得分:0)

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