烂冬瓜狮子头 发表于 2020-10-27 15:45:47

关于在多重循环中的break的执行

如图所示

烂冬瓜狮子头 发表于 2020-10-27 15:46:54

xieglt 发表于 2020-10-27 16:07:40

for(i = 1 ; i <=9 ; i++)
{
      if(i==5)
   {
      //跳出外层循环
         break;
      }
      for(j = 1; j <= 9 ; j ++)
   {
         //跳出内层循环,注意,是 i== 5 ,不是 i=5
            if(i==5)
            {
               break;
             }
      }
}

One_Day_外交官 发表于 2020-10-27 16:34:47

语法要先解决 是 i == 5

风过无痕1989 发表于 2020-10-28 15:34:09

这才是你需要的程序吧?

// 输出乘法口诀表

#include<stdio.h>

void main()
{
        int i,j,k;
        for(i = 1;i < 10;i++)
        {
                for(j =1;j < 10;j++)
                {
                  if(i >= j)
                  {
                        k = i * j;
                        printf("%dx%d=%-3d",j,i,k);       /* -3d表示左对齐,占3位 */
                  }
                }
                printf("\n");
        }       
}

大神本人 发表于 2020-10-28 15:41:00

#include <iostream>                                                                                                   
using namespace std;

int main(void)
{
    for(int i=1; i<=9; i++)
    {
      if(i == 5)
      {
            cout << "i = 5, program terminates..." << endl;
            break;
      }
      cout << "\n i = " << i << endl;
      for(int j=1; j<=9; j++)
      {
            cout << "i * j = " << (i * j) << endl;
      }
    }
}

风过无痕1989 发表于 2020-10-28 15:50:45

这是你自己的程序,上移一个花括号,将判断语句放到外循环中,i = 5 时就停止循环了


# include <stdio.h>
# include <stdlib.h>
int main()
{   
      int i,j;
      for (i = 1;i <= 9;i++)
          {
                for (j = 1;j <= 9;j++)
                {
                  printf("%d*%d=%2d\t",i,j,i * j);
                                  
            }
            if(i == 5)    // 是判断,不是赋值,少一个 =
                {
                break;
            }
      }
          printf ("\n");
          return 0;
}
页: [1]
查看完整版本: 关于在多重循环中的break的执行