| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1361 人关注过本帖
标题:这个C程序为什么这么执行,不是顺序执行的吗?
只看楼主 加入收藏
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
 问题点数:0 回复次数:15 
这个C程序为什么这么执行,不是顺序执行的吗?
#include<stdio.h>
int main()
{
char ch;
printf("Input 'Y' to continue or input 'N' to exit!\n");
while(1)
{

ch=getchar();
getchar();
switch(ch)
{
case'y':printf("continue!!!\n");break;
case'n':exit(0);break;
default:break;
}
}
getchar();
return 0;
}
这个程序是从另一个主题里拷的,我有些不明白的地方,希望大家能帮帮忙!

这个程序是输入字符Y就输出continue!!! 输入字符N就退出,输入其他的字符就什么也不输出,但再输入Y或N时还能得到想要的输出.我搞不懂的是:如果我输入一个不是Y或N的字符,比如是R,程序执行完switch语句后什么也没输出,我再输入一个Y(被getchar();语句接收),程序应该执行语句return 0;吧,然后就没了啊.程序是怎么回到switch(ch)语句的呢??想了蛮久都不懂..
搜索更多相关主题的帖子: 顺序 
2007-10-14 00:28
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
得分:0 

怎么就没人给点意见呢...

2007-10-14 00:48
孤独败天
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2007-9-20
收藏
得分:0 

我觉得有个循环条件 就是while(1) 表示输入的值为真;而这个程序除了n以外所有的值都是真

2007-10-14 10:41
静思
Rank: 3Rank: 3
来 自:沈阳
等 级:新手上路
威 望:8
帖 子:630
专家分:0
注 册:2006-2-28
收藏
得分:0 
switch中的break只在switch中起作用,只有你输入n的时候才能退出while循环,其余情况一直都在执行while循环

英者自知,雄者自胜
2007-10-14 10:46
無邪的睡脸
Rank: 2
等 级:等待验证会员
威 望:1
帖 子:344
专家分:13
注 册:2007-9-11
收藏
得分:0 
再次输入y时是被ch=getchar()接收.注意到while(1).
2007-10-14 11:44
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
得分:0 

谢谢大家啊,懂一点了
还有个小问题   程序中两个getchar();语句有什么作用呢??

2007-10-14 12:36
wangfeng2500
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2006-8-29
收藏
得分:0 
这个程序不大对,输入ty只要有y也可以continue,有点bug!
2007-10-14 12:42
huxs
Rank: 1
等 级:新手上路
帖 子:79
专家分:0
注 册:2007-10-7
收藏
得分:0 
是吗,没试过.
两个getchar();语句是什么作用呢??
2007-10-14 12:53
天人和一
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2007-10-11
收藏
得分:0 



第二个是接收回车符,改为
while(getchar()!='\n')
continue;
更好!!!
2007-10-14 13:16
蓝色神话
Rank: 2
等 级:论坛游民
威 望:1
帖 子:404
专家分:24
注 册:2006-5-11
收藏
得分:0 
4楼是对的,但说一点,exit(0)是直接退出程序,而不是仅仅退出while循环,后面的break也没用.
7楼说的问题不存在,没有这种情况!

2007-10-14 13:24
快速回复:这个C程序为什么这么执行,不是顺序执行的吗?
数据加载中...
 
   



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

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