for(;(ch=getchar())!='\n';)
这个语句什么意思
for语句的格式为:
for(语句A;语句B;语句C) {
语句块
}
其中语句A只在开始时执行一次;语句B在每次循环开始时都会执行一次;语句C在每次循环结束时执行一次。因此for(c=getchar();c!='\n';)中c=getchar()只执行一次,所以如果输入的第一个字符不是换行的话就会无限循环。
循环输入字符,知道按下换行回车为止
循环的退出条件是输入回车也就是换行符
否则一直循环
就是说在程序等待输入时,如果你输了东西然后按回车,那么就会执行for循环中的语句;如果你没输东西直接按回车,那么就不执行里面的语句。
再一个,循环判断中使用getchar()也可以避免因输入了错误的内容导致一部分无法捕获的内容遗留在缓冲区使得程序无法继续执行的问题。
一个for循环 如果输入的不是换行执行循环体内容