#include<stdio.h>
int main(void)
{
char ch;
while ((ch = getchar()) != '#')
{
if (ch != '\n')
continue;
printf("step 1\n");
if (ch == 'c')
continue;
else if (ch == 'b')
break;
if (ch == 'h')
goto laststep;
printf("step 2\n");
laststep:printf("step 3\n");
}
printf("done\n");
return 0;
}我输入字符a为什么 输出是123 123.怎么循环2次呢。好奇怪!
如果第七行改成if(ch=='\n') 那不就是:每次输入字符后回车,都被continue给循环到while的位置,又要重新输入了。可我演示的时候输入a,后面的printf还是继续输出123
为什么没有跳转到while,提示继续输入。而是屏幕显示123呢.
………………ch是一个字符,不是一个字符串,如果你输入字符后回车,那么ch就是你输入的这个字符,你后面的那个回车是没有输入进来的。
因此你输入a+回车,会继续输出123.
当你直接输入回车,那么ch就是回车,if(ch=='\n')成立,然后就continue 到while
就一次啊,你这段代码我直接运行的
请教大佬,如果第七行改成if(ch=='\n') 那不就是:每次输入字符后回车,都被continue给循环到while的位置,又要重新输入了。可我演示的时候输入a,后面的printf还是继续输出123
为什么没有跳转到while,提示继续输入。而是屏幕显示123呢.
好难,就是想不明白!
有没有懂的小哥,给讲解一下吧。实在找不到答案!强迫症伤不起~~~