首页 > 解决方案 > 谁能说出 C 中这两个代码片段之间的区别?

问题描述

我是 C 编程新手,我正在使用 getchar() 练习 while 循环。但是我对这两个while循环代码感到困惑。这是第一个代码:

char c;
c=getchar();
while(c != 'X')
  c=getchar();
printf("Thanks for finally inputting an X.\n");

我不明白这个功能会printf直到用户输入 X。

这是第二个代码:

char c;
while((c=getchar()) != 'X');
printf("Thanks for finally inputting an X");

which 和最后一个函数做了同样的事情,但我不太明白while((c=getchar()) != 'X');这对我来说意味着当用户输入除 X 之外的其他字符时,它将为 true 并打印句子。

标签: cloopsoperators

解决方案


仔细查看while第二个片段中的:

char c;
//    here ----------------v
while((c=getchar()) != 'X');
printf("Thanks for finally inputting an X");

;之后有一个while。这意味着循环的主体是空的。所以循环将继续运行该条件,直到它为假,即何时c等于'X'


推荐阅读