gpt4 book ai didi

c - do-while 停止工作

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:41 26 4
gpt4 key购买 nike

又回来了一个菜鸟问题。在为我的作业项目处理一个功能时,我发现当我按 X 时我的菜单不会退出,它在一个小时前工作并且我没有在 main() 中更改任何内容。我注释掉了函数中的所有代码,以确保函数中没有任何干扰。我只是找不到任何问题,如果有任何帮助,我将不胜感激。

int main()
{
char val, enter;
int c;
/* loopa med do-while */
do
{
printf("===============================\n");
printf(" Olja i Norge AB\n");
printf("===============================\n\n");
printf(" Artikelregister\n");
printf(" A. Lista artiklar\n");
printf(" B. L\x84gg till artikel\n");
printf(" C. Radera artikel\n");
printf(" D. \x8Endra artikel\n\n");
printf(" Kundregister\n");
printf(" E. Lista kunder\n");
printf(" F. L\x84gg till kund\n");
printf(" G. Radera kund\n");
printf(" H. \x8Endra kund\n\n");
printf(" Ordrar\n");
printf(" I. Best\x84ll\n");
printf(" J. Lista ordrar\n\n");
printf(" X. Avsluta\n");
printf("\n===============================");
printf("\n===============================\n");
printf("V\x84lj: ");
scanf("%c", &val);

do {
c = getchar();
} while (c != EOF && c != '\n');

switch( val )
{
case 'A':
case 'a':
printf("\n");
artList();
break;

case 'B':
case 'b':
printf("\n");
artAdd();
break;

case 'C':
case 'c':
artDel();
break;

case 'D':
case 'd':
artEdit();
break;

case 'E':
case 'e':
kundList();
break;

case 'F':
case 'f':
kundAdd();
break;

case 'G':
case 'g':
kundDel();
break;

case 'H':
case 'h':
kundEdit();
break;

case 'I':
case 'i':
order();
break;

case 'J':
case 'j':
orderList();
break;

case 'X':
case 'x':
break;
}

printf("\nTryck <ENTER> f\x94r att forts\x84tta.");
scanf("%c", &enter);
system("cls");

}while(val != 'X' || val != 'x');

return 0;
}

最佳答案

do { ... } while (val != 'X' || val != 'x');

如果 val 是 'X' 则 while“转换”为

do { ... } while (0 || 1);

如果 val 是 'x' 则 while“转换”为

do { ... } while (1 || 0);

如果 val 是 'a' while 则“转换”为

do { ... } while (1 || 1);

它永远不会计算为 false。

您需要重写条件 -- 提示:使用 && :)


编辑

哦……假设“!= 优先于 ||”。我从来不知道优先级是什么,而且我总是在条件表达式中使用括号

do { ... } while ((val != 'X') || (val != 'x'));

关于c - do-while 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1876768/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com