1
rundis OP while循环不是会在判定式值为假值的时候结束么。。。
|
2
lll9p 2015 年 4 月 13 日
你的程序里不是遇到空格就结束循环么?空格和换行是不一样的。
|
4
FanAndXinran 2015 年 4 月 13 日
while ((last = getchar()) != '\n' )
|
5
qwlhappy 2015 年 4 月 13 日
getchar()有点多,会不会是自己在输入的时候没想明白?不如单独测试下最后一个循环
|
8
rundis OP @FanAndXinran 但是我希望遇到空格也跳出循环啊。
|
9
leavic 2015 年 4 月 13 日
为什么要用‘或'判定?
我们分析一下流程: 1.你现在得到了一个'\n' 2.你判断的条件式不为空格或者不为'\n' 3.不满足后面不为'\n'的条件 4.但是满足前面非空格的条件啊 5.或关系,有一个真即为真, 6.while判断为真,当然继续循环体。 明显应该用'与'。 否定判断用与,肯定判断用或,这是个很通用的逻辑。 类似的逻辑如果用在位运算上,你以后如果碰到寄存器某位写0或者写1这个问题,一样是这个逻辑。 |
10
leavic 2015 年 4 月 13 日
简单点说,你的逻辑是:
最后得到的字符既不是空格,也不是回车,才进入循环,所以这明显是个与关系。 |