目录
五、流程控制语句
5.4跳转结构
break、continue、goto、return
5.4.1break
结束替它最近的循环
例子:输出所有三位数中能被17整除的最大数
cs
#include<stdio.h>
int main()
{
int a = 999;
for(a;a>=100;a--)
if(a%17==0)
{
printf("%d",a);
break;
}
return 0;
}
5.4.2continue
结束本次循环,循环还在继续。在循环体里面,如果执行了continue,他下面的语句不再执行。
cs
#include<stdio.h>
int main()
{
//输出1~10所有3的倍数
int i;
for(i=1;i<=10;i++)
{
if(i % 3 != 0)
continue;
printf("%d ",i);
}
// 3 6 9
return 0;
}
5.4.3goto
无条件跳转。1、设置跳转的位置,标识符(大写):2、写跳转语句,goto 标识符名。
cs
#include<stdio.h>
int main()
{
//输出1~10所有3的倍数
int i = 0;
L://标识符
printf("%d ",i);
i++;
if(i<5)
goto L;
//0 1 2 3 4
return 0;
}
注意事项:标识符的位置和goto必须在同一个函数内部
5.4.4return
结束函数,return 0;(0代表程序正常结束)另有其他值。
5.5额外拓展
5.5.1死循环的写法
cs
for(;;);
while(1);
5.5.2循环嵌套
输出下面的数据
A
A B
A B C
.....
cs
#include<stdio.h>
int main()
{
int i,j,k;
char a;
scanf("%d",&j);
for(i=1;i<=j;i++)
{
for(a='A';a-'A'<i;a++)
printf("%c ",a);
printf("\n");
}
return 0;
}
输出下面的数据
A
A B A
A B C B A
.....
cs
#include<stdio.h>
int main()
{
int i,j,k;
char a;
scanf("%d",&j);
for(i=1;i<=j;i++)
{
for(a='A';a-'A'<i-1;a++)
printf("%c ",a);
for(a;a-'A'>=0;a--)
printf("%c ",a);
printf("\n");
}
return 0;
}
输出下面的数据
A
A B A
A B C B A
cs
#include<stdio.h>
int main()
{
int i,j,k;
char a;
scanf("%d",&j);
for(i=1;i<=j;i++)
{
k=i;
while(j-k){
k++;
printf(" ");
}
for(a='A';a-'A'<i-1;a++){
printf(" %c",a);
}
for(a;a-'A'>=0;a--)
printf(" %c",a);
printf("\n");
}
return 0;
}
5.5.3随机数函数
在C语言中,生成随机数通常涉及到两个函数:rand() 和 srand() 。这两个函数都定义在 <stdlib.h> 头文件中。
rand() 函数
cs
#include <stdio.h>
#include <stdlib.h>
int main() {
int a = rand();
printf("%d\n", a);
// 输出不确定
return 0;
}