我想制作一个循环,每次答案不是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);
答案 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条件。