首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

while(menu(),scanf("%c"&choice)==一 && choice!='f')

2012-09-12 
while(menu(),scanf(%c,&choice)1 && choice!f)while(menu(),scanf(%c,&choice)1 && choice!

while(menu(),scanf("%c",&choice)==1 && choice!='f')
while(menu(),scanf("%c",&choice)==1 && choice!='f') 

学C以来常用while,但只用到一个参数,第一次看到用两个参数的,其中menu()是一个函数调用。
根据程序的意思会先调用menu(),然后等待输入一个字符进行判定。
while循环需要括号内为真值,但是menu()返回类型是void,scanf("%c",&choice)==1 && choice!='f') 可返回一个逻辑值,那么括号内究竟是如何判定真假的?是只观察第二个参数的逻辑值吗?
请高手帮忙解惑,谢谢~

[解决办法]
很明显,这是一段装B代码。
其实很简单,while的条件是有一个逗号运算符组成。
讲C/C++ 语法的书都讲过吧。
逗号运算符以最后一个表达式的值为准。
其实:
while(menu(),scanf("%c",&choice)==1 && choice!='f') 
就等于:
menu();
while(scanf("%c",&choice)==1 && choice!='f') 

热点排行