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