| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 733 人关注过本帖
标题:怎样消除死循环。。。
只看楼主 加入收藏
若无其事NIE
Rank: 2
等 级:等待验证会员
帖 子:119
专家分:25
注 册:2008-10-28
结帖率:88%
收藏
已结贴  问题点数:20 回复次数:6 
怎样消除死循环。。。
while(open){
      printf("choice:>");
      scanf("%d",&choice);
      switch(choice){
      case 4:break;
      case 5:break;
      case 6:break;
      case 7:break;
      case 8:break;
      case 9:break;
      case 10:break;
      case 11:break;
      case 12:{
          open=0;
          break;
              }
      }
  }

choice是int型,如果在输入过程中输入比如字母之类的会出玩死循环。。。
搜索更多相关主题的帖子: 消除 
2010-01-15 05:29
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:15 
while(open)
{
      printf("choice:>");
      scanf("%d",&choice);
      switch(choice)
      {
          case 0:
          case 1:
          case 2:  
          case 3:        
          case 4:
          case 5:
          case 6:
          case 7:
          case 8:
          case 9:
          case 10:
          case 11:break;
          case 12:open=0;break;
          defaut: printf("input error!"); break;
      }
  }
随意改的,有错请指出

[ 本帖最后由 jiangwu10057 于 2010-1-15 07:39 编辑 ]
2010-01-15 07:24
孤独_浪子
Rank: 2
等 级:论坛游民
帖 子:52
专家分:60
注 册:2010-1-13
收藏
得分:5 
那个open的初值是多少?
2010-01-15 09:04
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
收藏
得分:0 
open值不等于0是就做下面的循环体···
2010-01-15 09:20
dzyong
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-1-16
收藏
得分:0 
不知道楼主傻意思~~
2010-01-16 21:46
zhddragon
Rank: 5Rank: 5
等 级:职业侠客
帖 子:208
专家分:346
注 册:2009-5-14
收藏
得分:0 
对scanf的返回值做检验就可以避免这个问题的 例如
int a = 0;
int n = 0;
n = scanf("%d",&a);
if(n != 0){
        printf("input is %d",a);
        ..........//要进行的操作
}else{
        fflush(stdin);
        puts("err");


身体是玩命的本钱
2010-01-17 21:01
tyyz9565
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2009-9-10
收藏
得分:0 
while(open)
{
      printf("choice:>");
      setbuf(stdin.NULL);   /*清穿键盘输入缓冲*/
      scanf("%d",&choice);
      switch(choice)
      {
          case 0:
          case 1:
          case 2:  
          case 3:        
          case 4:
          case 5:
          case 6:
          case 7:
          case 8:
          case 9:
          case 10:
          case 11:break;
          case 12:open=0;break;
          defaut: printf("input error!"); break;
      }
  }
2010-01-19 14:28
快速回复:怎样消除死循环。。。
数据加载中...
 
   



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

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