| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1287 人关注过本帖
标题:[求助] 这函数为何老是无限循环?
只看楼主 加入收藏
☆註⊙諨☆
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-10-7
收藏
得分:0 
for 循环怎么可以结束捏?
用while?

2006-11-05 20:35
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
以下是引用☆註⊙諨☆在2006-11-5 20:35:48的发言:
for 循环怎么可以结束捏?
用while?

用while?具体地说


谁有强殖装甲第二部,可以Q我460054868
2006-11-05 22:41
minute
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-11-6
收藏
得分:0 

0到6,为什么只有case 4个呢?
何必?还是没完成其他选项?

2006-11-06 03:37
cdmalcl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:4091
专家分:524
注 册:2005-9-23
收藏
得分:0 
以下是引用Knocker在2006-11-5 20:04:46的发言:

case 3 : exit_110(); break;

2006-11-06 10:41
suifengjita
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-10-12
收藏
得分:0 

请问exit的具体作用是什么?
可以在switch语句外面再加一个break啊

2006-11-06 11:04
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
以下是引用feng_shaodon在2006-11-5 18:14:23的发言:
有这么一段函数(部分):
main()
{for(;;)
{ switch(menu_book())
{
case 1 : add(); break;
case 2 : search() ; break;
case 3 : exit_110(); break;
case 4 : list () ; break;
}
}
}
int menu_book()
{ int c;
printf("*******************MENU******************\n");
printf("* 1.tian_jia *\n");
printf("*****************************************\n");
do
{printf("\n\n enter you choice(0-6):");
scanf("%d",&c); }
while(c<0||c>6);
return c}
为何当输入的值为一个非数字字符(如:a,或A)的时候会出现无限循环??
就是老是输出“enter you choise(0-6):”有啥解决方案?
各位朋友帮忙呀!先谢了

楼主说的
"为何当输入的值为一个非数字字符(如:a,或A)的时候会出现无限循环??
就是老是输出“enter you choise(0-6):”有啥解决方案"
这个是因为A或a的ASCII值都是>6的...又因为整型和字符型可以通用...所以这里你虽然定义C为int型...但输入字符也是合法的...所发输入A或a就满足你的while条件....自然会继续do后面的语句了....还有就是你的for循环是死循环.....


这个社会太复杂。。。
2006-11-06 19:28
yuefei1023
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-11-7
收藏
得分:0 
以下是引用feng_shaodon在2006-11-5 18:14:23的发言:
有这么一段函数(部分):
main()
{for(;;)
{ switch(menu_book())
{
case 1 : add(); break;
case 2 : search() ; break;
case 3 : exit_110(); break;
case 4 : list () ; break;
}
}
}
int menu_book()
{ int c;
printf("*******************MENU******************\n");
printf("* 1.tian_jia *\n");
printf("*****************************************\n");
do
{printf("\n\n enter you choice(0-6):");
scanf("%d",&c); }
while(c<0||c>6);
return c}
为何当输入的值为一个非数字字符(如:a,或A)的时候会出现无限循环??
就是老是输出“enter you choise(0-6):”有啥解决方案?
各位朋友帮忙呀!先谢了

请弄清楚了,楼主说的是在输入a,或A的时候会出现无限循环。
按照常理输入了一个数,不再0到6的范围内的话(比如说a)就会出现enter you choise (0-6) ;
然后就应该继续让你输入一个数,而楼主的确是出现了无限循环,而没有让你输入一个数。
楼主问的应该是这个现象,本人也想听听高手的解释。谢谢

2006-11-07 16:04
快速回复:[求助] 这函数为何老是无限循环?
数据加载中...
 
   



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

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