| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1960 人关注过本帖
标题:[求助]看不懂程序中的while循环语句,希望得到帮助!
只看楼主 加入收藏
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用inku在2006-8-19 15:20:30的发言:

case'0':v2++:这句的意思是遇到从键盘输入0就执行v2++:
default: v1++;这句又是什么意思呢?我印象中default应该放在循环的最后吧!

switch(ch)
{
case 'a':
case'h':
default: v1++;
case'0':v2++;
}
switch是按照从上到下匹配的,所以这里,如果输入的不是a或h,则做default,case '0'
default不一定要放在最后的


人生没有彩排,每天都是现场直播~~~
2006-08-19 15:34
flyguy
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-7-22
收藏
得分:0 

我认为这句有问题:
while((ch=getchar())!="#");

首先,char是字符,ch 只能接收一个字符,""是字符串;
其次,while将一直循环直到接收到#,最后ch 里是#,
然后才进入switch,
我的运行结果是 vs1=1,vs2=1.

我怀疑你们是不是运行过,还是看书上给的


2006-08-19 16:22
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用flyguy在2006-8-19 16:22:52的发言:

我认为这句有问题:
while((ch=getchar())!="#");

首先,char是字符,ch 只能接收一个字符,""是字符串;
其次,while将一直循环直到接收到#,最后ch 里是#,
然后才进入switch,
我的运行结果是 vs1=1,vs2=1.

我怀疑你们是不是运行过,还是看书上给的

那是因为你while语句后面有个分号,按照LZ的答案的话,应该是没有分号的
所以有分号的话,你说的没错呀


人生没有彩排,每天都是现场直播~~~
2006-08-19 16:37
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
可是答案是5,5 怎么算出这个结果的?
2006-08-20 00:36
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-08-20 00:43
avlmo
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-5-26
收藏
得分:0 
以下是引用Sally_SJL在2006-8-19 15:15:55的发言:

好象说的不对哦,
default: v1++; break; 这样的话,才是跳出循环


衣服脱掉后,爱情就哭了.
2006-08-20 10:55
karwin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-8-16
收藏
得分:0 
就是 话 接受键盘输入的一个字符,如果个字符不是 “#“就继续接受。
如果该字符是 a或者h或者其他就是v1=v1+1;,是0就V2=V2+1,最后输出v1,v2
void main()
{
int v1=0,v2=0;char ch;
while((ch=getchar())!='#')
switch(ch)
{

case 'a'://这两句好像是多余的!!
case'h'://这两句好像是多余的!!
default: v1++;break;
case'0':v2++;break;

}
printf("%d,%d\n",v1,v2);
}
还有就是 在case 后面就break,该程序就能正常 运行了

[此贴子已经被作者于2006-8-21 14:02:41编辑过]

2006-08-20 22:15
inku
Rank: 1
等 级:新手上路
帖 子:122
专家分:0
注 册:2006-8-6
收藏
得分:0 
我只是照原题打了一遍,可能是题目出错了,感谢大家给予解答,谢谢!
2006-08-20 22:51
无铭剑客
Rank: 1
等 级:新手上路
帖 子:57
专家分:0
注 册:2005-10-31
收藏
得分:0 

表示当你输入'#'字符时,循环结束.或者说当你想结束循环不再接收字符时,输入'#'即可.

2006-08-21 10:45
ridwsc
Rank: 1
等 级:新手上路
帖 子:168
专家分:0
注 册:2006-8-10
收藏
得分:0 
以下是引用inku在2006-8-19 11:41:57的发言:

while((ch=getchar())!="#");

楼主呀,这里多了个冒号~~~~~~~~~~~~~~


中国加油,加油,加油~~~~~ 我行~~我可以~~C
2006-08-21 10:51
快速回复:[求助]看不懂程序中的while循环语句,希望得到帮助!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051963 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved