xiang__jie 发表于 2011-4-20 23:36:32

跳出循环的问题

本帖最后由 旭日东升 于 2011-4-23 17:02 编辑

#include<stdio.h>
void main()
{
        int i ,j ,k;
        printf("ijk\n");
        for (i=0;i<2;i++)
                for(j=0;j<2;j++)

                        for(k=0;k<2;k++) break;
                        printf("%d%d%d\n",i,j,k);
}

请问我把“break”跳出指令加在for(k=0;k<2;k++) 之后,我想知道为什么有循环但没有输出,只有当所有循环结束后才输出最后结果,中间的循环没有输出显示

火垂るの墓 发表于 2011-4-21 00:28:48

第一break是一个新的指令,前面要有“;”与上句隔开
第二完全不知道你的break用来干什么?
第三for语句后要有{}来表示你要循环的内容,否则只默认第一句为要循环内容
下面是我猜测你要达到的目的改进的代码,不对希望你阐明目的
#include<stdio.h>
void main()
{
        int i ,j ,k;
        printf("ijk\n");
        for (i=0;i<2;i++)
        {
                for(j=0;j<2;j++)
                {
                       
                        for(k=0;k<2;k++)
                        {
                        printf("%d,%d,%d\n",i,j,k);
                        }
                }
        }
}

soldier 发表于 2011-4-23 14:10:23

回复 xiang__jie 的帖子

把你上面的三个嵌套的循环写成标准的,for在不加{}的时候, 循环体只有一条语句, 就是他下面的语句。
       for (i=0;i<2;i++)
            {
                for(j=0;j<2;j++)
                {
                        for(k=0;k<2;k++)
                        {
                           break;
                        }
               }
                        printf("%d%d%d\n",i,j,k);
             }

printf("%d%d%d\n",i,j,k); 在最外层的循环中,所以执行两次。

hunterylc11 发表于 2011-4-23 16:54:55

汗,你的break语句跟在for循环之后的是循环内只执行break,而输出则是你的循环结束后才执行!

nbceshi 发表于 2011-4-23 17:09:50

楼主,你是不是需要这个#include <stdio.h>
void main()
{
        int i ,j ,k;
        printf("ijk\n");
        for (i=0;i<2;i++)
        {       
                for(j=0;j<2;j++)
                {       
                        for(k=0;k<2;k++)
                        {
                                printf("%d%d%d\n",i,j,k);
                                //break;
                        }
                }
        }
//        printf("%d%d%d\n",i,j,k);
}

鱼C工作室.YCGZS 发表于 2015-12-13 12:05:51

:cry:cry:cry
页: [1]
查看完整版本: 跳出循环的问题