c语言中break报错,C语言中 break和continue语句解析

C语言中 break和continue语句解析

1、break

C语言中的break可以用在两个地方:

(1)用在switch中,作用是使程序流程转到switch语句之后的语句去执行。

(2)用在循环中,作用是转到循环语句之后的语句执行。

要注意的是,如果switch语句或循环语句是嵌套的,那break都只能跳出它所在的switch或循环,而不是跳出所有switch或所有循环。

例如:

for(i = 1; i <= 10; i++)

for(j = 1;  j <= 10;  j++)

if(i == j)

break;

代码中的break在内循环中,它使程序跳出内循环,外循环将继续进行。

2、continue

continue只能用在循环中,作用是跳过本次循环剩下的部分,转去执行下一次循环。对于for循环,只要遇到continue,便转到for后面括号里的第三个表达式。

注意:

continue不能用在单纯的switch语句中,除非switch在循环中或循环在switch中,这种情况下continue是对循环起作用而不是对switch。如果没有循环,单纯的switch中出现continue是一个语法错误。

下面是用break和continue的一个例子。

例3.7 求两个整数的最小公倍数。

#include 

int main()

{int  m, n, i;

scanf(“%d,%d”, &m, &n);

for(i = 1;  i <= m*n;  i++) {

if(i%m != 0)

continue;      //若除以m不尽,则回到i++换下一个数

if(i%n == 0)

break;         //若除尽,意味着已找到最小公倍数,跳出循环

}

printf(“%d和%d的最小公倍数是:%d\n”, m,n,i);

getch();

return 0;

}

这个例子仅是为了说明break和continue的用法才这样设计,实际上用下面代码来求解效率更高:

#include

int main()

{int  m, n, i, t;

scanf(“%d,%d”, &m,&n);

if(m 

t = m;

m = n;

n = t;

}

for(i = m; i <= m*n; i += m){  // i的取值都是m的倍数

if(i%n == 0)

break;          //若除尽,意味着已找到最小公倍数,跳出循环

}

printf(“%d和%d的最小公倍数是:%d\n”, m,n,i);

getch();

return 0;

}

你可能感兴趣的:(c语言中break报错)