学习for语句循环嵌套与break语句printf输出位置不同导致结果不同的代码理解

今天学习了for语句循环嵌套与break语句,写代码的时候发现结果与我的预期相差很大,不断尝试询问之后,发现是我的阅读代码,理解代码的能力还是太差。

例一:

输出语句在整体for循环语句之外,在整个代码结束处

代码如下:

# include <stdio.h>
int main()
{
    int i ,j ;
    for (i=0; i<10 ; i++)
    {
        for (j = 0; j < 10; j++)
        {
            if (j==3)
                break;
        }
    }
           printf("i=%d ,j=%d\n",i,j);   //注意输出语句位置
    return 0;
}

代码解读:

输出句在整个for循环语句之外,而循环语句在符合条件下会一直在循环语句里进行循环,当整个循环语句结束后,数字跳出才会输出最后结果。所以最后的输出结果应该是i = 10 ,j =3.

编译结果如下:

i=10 ,j=3

例二:

输出语句在外层循环

代码如下:

# include <stdio.h>
int main()
{
    int i ,j ;
    for (i=0; i<10 ; i++)
    {
        for (j = 0; j < 10; j++)
        {
            if (j==3)
                break;
        }
            printf("i=%d ,j=%d\n",i,j);   //注意输出语句位置
    }
    return 0;
}

代码解读:

输出语句 printf("i=%d ,j=%d\n",i,j);在外层for循环进行输出,即当内层循环结束后,循环来到外层,输出语句才会进行输出,由代码可知,内层循环当且只有  j = 3 时,内层循环结束,所以最终输出结果应该是:

i=0 ,j=3
i=1 ,j=3
i=2 ,j=3
i=3 ,j=3
i=4 ,j=3
i=5 ,j=3
i=6 ,j=3
i=7 ,j=3
i=8 ,j=3
i=9 ,j=3

 例三:

输出语句在内层循环

代码如下:

# include <stdio.h>
int main()
{
    int i ,j ;
    for (i=0; i<10 ; i++)
    {
        for (j = 0; j < 10; j++)
        {
            if (j==3)
                break;
                      printf("i=%d ,j=%d\n",i,j);  //注意输出语句的位置
        }
    }
    return 0;
}

代码解读:

输出语句在内层循环,所以输出结果应该是符合循环条件的每一次循环。

编译结果如下:

i=0 ,j=0
i=0 ,j=1
i=0 ,j=2
i=1 ,j=0
i=1 ,j=1
i=1 ,j=2
i=2 ,j=0
i=2 ,j=1
i=2 ,j=2
i=3 ,j=0
i=3 ,j=1
i=3 ,j=2
i=4 ,j=0
i=4 ,j=1
i=4 ,j=2
i=5 ,j=0
i=5 ,j=1
i=5 ,j=2
i=6 ,j=0
i=6 ,j=1
i=6 ,j=2
i=7 ,j=0
i=7 ,j=1
i=7 ,j=2
i=8 ,j=0
i=8 ,j=1
i=8 ,j=2
i=9 ,j=0
i=9 ,j=1
i=9 ,j=2

以上结果是新手期的我在遇到代码位置不同导致编译不同问题学习的代码解读心得。

C语言小白,若有错误,欢迎大佬指点。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭盛碗里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值