新人求教 if else if 的问题
c语言吧
全部回复
仅看楼主
level 6
if(c==' '||c=='\n'||c=='\t')
state=OUT;
else if(state==OUT)
{ state=IN;
++nw;}
如果第一个if条件为真,后面的else if还执行吗。
2018年03月19日 16点03分 1
level 6
他这个单词个数的累加为什么不直接放第一个if后面。我试着把中间的删除。++nw就失效了。
2018年03月19日 16点03分 2
level 6
如果第一个if条件为真,后面的else if就不判断了。
2018年03月20日 04点03分 4
我也是这么想,但是如果第一个为真。后面的不判断了,那么++nw也就不执行了。这样有的矛盾啊,这段的本意是如果输入为空格那么单词个数加1,如果第一个if为假那么输入为连续的字符算一个单词。nw反倒要自加了。
2018年03月20日 10点03分
问题是他这段程序是没有错的,可以累加单词个数。
2018年03月20日 10点03分
@捂一捂悟唔 这个是为了防止出现连续多个空格设置的,不过仍然有一点bug(开头空格会+1),请自行理解
2018年03月20日 10点03分
回复 三枝💕葉留佳 :虽然还是不理解,还是谢谢你的解答。先把他当成固定的模式
2018年03月20日 10点03分
level 11
其实C语言里else if是一个else语句,只是else部分只有一个if,这个特点跟很多语言里的elseif之类的语句很像,所以大家都这么用,算是一个技巧。
2018年03月20日 05点03分 5
level 5
不会。
2018年03月20日 05点03分 6
level 6
c语言只有if或if else语句,这里是else里嵌套了一个if语句
2018年03月20日 05点03分 7
1