C语言 第五章 循环结构

第五章 循环结构

You are more powerful than any other person.

你比任何人都强大。

程序的三种基本结构

顺序结构

选择结构

循环结构

while语句

先判断后执行,表达式为真,

注意:如果表达式的值一直为真,没有改变,并且没有break;,则会陷入死循环

1
2
3
4
while(表达式)
{
语句
}

do-while

先执行后判断

1
2
3
4
5
do{
语句
}while(表达式);

// 注意:do-while的while号后有分号。

for

for 语句中的3个表达式均可省略,但;不可省略。

1
2
3
4
5
6
7
8
9
10
for(表达式1; 表达式2; 表达式3)
{
语句
}

// 可以看成
for(循环变量赋初值; 循环条件; 循环变量增量)
{
语句
}

执行顺序

[括号内为循环]

表达式1 -> 表达式2 -> [语句 -> 表达式2 -> 表达式3 ->]

for循环内还可以使用逗号表达式

1
2
3
4
5
int sum, i;
for(sum=0, i=0; i<100; sum+=i, i++)
{
语句
}

循环嵌套

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>

int main()
{
int i,j;
for(i=1; i<=2; i++)
{
for(j=1; j<=3; j++)
{
printf("*");
}
printf("\n");
}
}

break和continue

break:跳出整个循环。

continue :结束本次循环,转到循环的开始判断是否执行下一次循环。

穷举法

穷举法也成为了枚举法,将在此范围内的所有可能情况逐一验证,知道全部情况验证完毕。

素数

输入一个数,判断其是否为素数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int input, i, k;
printf("请输入大于1的数\n");
scanf("%d", &input);

k = sqrt(input);

for(i=2; i<k; i++)
if(input%i == 0) break;

if(i>k)
printf("%d是素数\n", input);
else
printf("%d不是素数\n", input);
}