LV070-辅助控制语句
一、return
1. 基本形式
return (表达式); /* 有没有 ( ) 都可以*/2. 基本应用
返回函数的值:当 return 应用在函数中时,可以用于返回一个值,如 return (10 + 9);
结束程序:当 return 应用在函数中时,不仅可以用于返回一个值,还可以直接结束该函数, return 语句执行完毕,它后边的所有语句不再执行,直接跳到主函数继续执行,若是用在主函数中,则遇到 return 直接结束主函数,整个程序结束,后边的语句不再执行。
【注意】 return 语句 可以有多个,可以出现在函数体的 任意位置,但是每次调用函数 只能有一个 return 语句被执行,所以只有一个返回值(少数的编程语言支持多个返回值,例如 Go 语言)。
二、goto
goto 语句是一种无条件流程跳转语句,通常 goto 语句与 if 语句结合使用,当满足一定条件时,程序流程跳转到指定标号处,接着往下执行。
1. 基本形式
/* 定义一个语句标识 flag_name (flag_name 只是一个名字)*/
flag_name : /* 语句标识后的冒号不能省略 */
语句块...;
/* goto 语句的调用 */
goto flag_name; /* 程序将从对应 flag_name 的代码处开始往下执行。 */【注意】 flag_name 后边的语句可以加 { } ,也可以不加。不过加上的话可读性会强一些。
2. 使用实例
2.1 跳出循环
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int count = 0;
flag:
{
printf("------goto statement execution------\n");
printf("------cycle end------\n");
printf("count = %d\n", count);
if (count == 3)
return 0;
}
printf("------while cycle start------\n");
while(1)
{
printf("Before statement execution: count=%d\n", count);
count++;
printf("After statement execution: count=%d\n", count);
sleep(1);
if(count >= 3)
goto flag;
}
return 0;
}
goto flag_name; 语句放在循环中用于跳出循环,用于结束循环时,此时 flag_name 处的代码有两种情况:
(1)第一种是放在循环上边,比循环先执行,这个时候, flag_name 处的程序会先执行一遍,所以,切记,这里边不要直接放 return 语句或者可以执行到 return 的语句,否则程序直接结束了,有需要的话可以加一个判断,以保证程序可以正常运行。
(2)第二种是放在循环下边,这个时候,只有满足了跳转指令时,程序才会跳转到 flag_name 处执行。
2.2 构成循环
#include <stdio.h>
int main(int argc, char *argv[])
{
int i = 1;
int sum=0;
flag:
if(i <= 5)
{
sum = sum + i;
i++;
goto flag;
}
printf("%d\n",sum);
return 0;
}三、break
1. 基本形式
break;break 语句通常用在循环语句和开关语句中。当 break 用于开关语句 switch 中时,可使程序跳出 switch 而执行 switch 以后的语句;如果没有 break 语句,则将成为一个死循环而无法退出。
当 break 语句用于 do-while、for、while 循环语句中时,可使程序终止循环而执行循环后面的语句,通常 break 语句总是与 if 语句联在一起,即满足条件时便跳出循环。
2. 跳出循环实例
#include <stdio.h>
int main(int argc, char *argv[])
{
int n,i;
printf("自数1~100全部素数:\n");
for(n = 2; n <= 100; n++)
{
for(i = 2; i < n; i++)
{
if (n % i == 0)
break;
}
if(i >= n)
printf("%d\t",n);
}
printf("\n");
return 0;
}
【注意】
(1) break 语句对 if-else 的条件语句不起作用;
(2)在多层循环中,一个 break 语句 只向外跳一层。
四、continue
1. 基本形式
continue;continue 语句的作用是跳过循环体中剩余的语句而 强行执行下一次循环。 continue 语句只用在 for、while、do-while 等循环体中,常与 if 条件语句一起使用,用来 加速循环。
2. 基本应用
下面的示例是直接跳过剩余语句执行下一次循环
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
for(n = 1; n <= 30; n++)
{
if(n % 10 == 0)
printf("\n");
if(n % 2 == 0)
continue;
printf("%d\t", n);
}
printf("\n");
return 0;
}