嵌套的 do while 循环
Nested do while loop
所以我一直在尝试做一个有更多子菜单的菜单。主菜单是一个 do while 循环,所以如果用户试图输入不相关的输入,它会让他重新输入。我想知道我是否可以对子菜单做同样的事情,但即使我写了一个有效的输入,子菜单循环也会继续进行。这是代码:
do
{
printf("Enter your choice: ");
scanf(" %d", &choice1);
switch (choice1)
{
case (1) :
do {
printf("4 printfs of choices");
printf("Enter your choice: ");
scanf(" %d", &choice2);
switch (choice2)
{
case (1):
{
stuff
}
break;
case (2) :
{
stuff
}
break;
case (3) :
{
stuff
}
break;
case (4) :
{
exit(0);
}
default :
{
printf("Sorry that is not a valid choice!\n");
}
break;
}
} while ((choice2 > 0) || (choice2 < 5));
break;
主循环还有一个 while 结束,但不是
我的担忧
(choice2 > 0) || (choice2 < 5)
始终为真,您的意思可能是 &&
。
我想你想要while ((choice2 < 1) || (choice2 > 4));
所以我一直在尝试做一个有更多子菜单的菜单。主菜单是一个 do while 循环,所以如果用户试图输入不相关的输入,它会让他重新输入。我想知道我是否可以对子菜单做同样的事情,但即使我写了一个有效的输入,子菜单循环也会继续进行。这是代码:
do
{
printf("Enter your choice: ");
scanf(" %d", &choice1);
switch (choice1)
{
case (1) :
do {
printf("4 printfs of choices");
printf("Enter your choice: ");
scanf(" %d", &choice2);
switch (choice2)
{
case (1):
{
stuff
}
break;
case (2) :
{
stuff
}
break;
case (3) :
{
stuff
}
break;
case (4) :
{
exit(0);
}
default :
{
printf("Sorry that is not a valid choice!\n");
}
break;
}
} while ((choice2 > 0) || (choice2 < 5));
break;
主循环还有一个 while 结束,但不是 我的担忧
(choice2 > 0) || (choice2 < 5)
始终为真,您的意思可能是 &&
。
我想你想要while ((choice2 < 1) || (choice2 > 4));