| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 556 人关注过本帖
标题:大家帮我看看这个do...while
只看楼主 加入收藏
Ice_clb
Rank: 1
等 级:新手上路
帖 子:108
专家分:6
注 册:2012-12-3
结帖率:70%
收藏
 问题点数:0 回复次数:11 
大家帮我看看这个do...while
#include <stdio.h>

int main(void)
{
    int val;
   
    printf ("请输入你要进入的楼层:");
    scanf("%d", &val);
    do
    {
        switch (val)
        {
        case 1:
            printf ("1层开\n");
            break;
        case 2:
            printf ("2层开\n");
            break;
        case 3:
            printf ("3层开\n");
            break;
        default:
            printf ("没有盖到这一层\n");
            break;
        }
    }while(4);
    return 0;
}

当我测试的时候,我打一个数字,为什么会一直不断的执行,不懂我意思的朋友,复制测试就知道了,请告诉小弟 ,小弟万分感激
搜索更多相关主题的帖子: default include return 
2012-12-26 16:13
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你自己分析一下循环中的流程,看看它依据什么条件结束的,而那个条件有没有可能得到满足?

授人以渔,不授人以鱼。
2012-12-26 16:18
Ice_clb
Rank: 1
等 级:新手上路
帖 子:108
专家分:6
注 册:2012-12-3
收藏
得分:0 
回复 2楼 TonyDeng
就是什么意思呢,你能告诉我一个解决办法吗,例如一个呗,我参考下,谢谢 小弟万分感激
2012-12-26 16:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
进入循环之后,val的值永远不会再被改变了,怎么结束循环呢?把scanf()语句放到循环里面去,这个值才能变!

授人以渔,不授人以鱼。
2012-12-26 16:23
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
程序代码:
  do
    {
        switch (val)
        {
        case 1:
            printf ("1层开\n");
            break;
        case 2:
            printf ("2层开\n");
            break;
        case 3:
            printf ("3层开\n");
            break;
        default:
            printf ("没有盖到这一层\n");
            break;
        }
    }while(4);
这还有什么例如的呢,while(4)就表示循环验证永远成立,想跳出循环必须依靠循环体里的break或者goto,可是楼主的代码没有goto,switch里的break只用于跳出switch,对已do while他是无能为力的,所以死循环就不奇怪了,break只能执行一次,跳出他最近的循环或switch

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-26 16:27
Ice_clb
Rank: 1
等 级:新手上路
帖 子:108
专家分:6
注 册:2012-12-3
收藏
得分:0 
回复 4楼 TonyDeng
亲 非常感谢,能否给你我你的QQ呢
不然你加我呗7943736
2012-12-26 16:27
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
do
    {
        switch (val)
        {
        case 1:
            printf ("1层开\n");
            break;
        case 2:
            printf ("2层开\n");
            break;
        case 3:
            printf ("3层开\n");
            break;
        default:
            printf ("没有盖到这一层\n");
            break;
        }
    scanf("%d",&val);
    }while(val);
楼主这样试试

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-26 16:29
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
zz

仰望星空...........不忘初心!
2012-12-26 16:34
yaobao
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:4
帖 子:1854
专家分:4121
注 册:2012-10-25
收藏
得分:0 
7位的QQ,好稀有啊

认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
2012-12-26 16:36
Ice_clb
Rank: 1
等 级:新手上路
帖 子:108
专家分:6
注 册:2012-12-3
收藏
得分:0 
回复 9楼 yaobao
呵呵  朋友送的
2012-12-26 18:20
快速回复:大家帮我看看这个do...while
数据加载中...
 
   



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

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