C语言-流程控制
条件判断
if-else 语句
一个 if 语句 后可跟一个可选的 else 语句,else 语句在布尔表达式为 false 时执行。
语法:
if(boolean_expression)
{
/* 如果布尔表达式为真将执行的语句 */
}
else
{
/* 如果布尔表达式为假将执行的语句 */
}
流程图
代码示例
#include <stdio.h>
int main()
{
// 定义变量
short a = 1;
short b = 2;
int c = a - b;
// 条件判断
if( c > 0 )
{
printf("a > b\n");
}
else
{
printf("a <= b\n");
}
return 0;
}
if- else if-else语句
代码示例
#include <stdio.h>
int main()
{
// 定义且初始化变量
int x = 0;
int y = 0;
printf("请输入两个数:");
// 请输入两个数
scanf("%d%d", &x, &y);
if (x > y)
{
printf("The bigger is: %d\n", x);
}
else if (x < y)
{
printf("The bigger is: %d\n", y);
}
else
{
printf("The 2 integers is equal: x == y\n");
}
return 0;
}
switch语句
一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。
流程图
代码示例
#include <stdio.h>
int main()
{
// 定义num变量
int num = 0;
printf("Input a number: ");
scanf("%d", &num);
// 选择分支
switch( num )
{
case 1:
printf("A\n");
break;
case 2:
printf("B\n");
break;
case 3:
printf("C\n");
break;
case 4:
printf("D\n");
break;
case 5:
printf("E\n");
break;
default:
printf("Invalid Input\n");
}
return 0;
}
循环判断
while 循环
只要给定的条件为真,C 语言中的 while 循环语句会重复执行一个目标语句。
语法
while(condition)
{
statement(s);
}
流程图
代码示例
#include <stdio.h>
int main()
{ // 定义sum变量
int sum = 0;
// 定义i变量
int i = 1;
while( i <= 100 )
{
sum = sum + i;
i = i + 1;
}
printf("sum = %d\n", sum);
printf("i = %d\n", i);
return 0;
}
编程实战
求2-100以内的所有质数
注意:质数只能被1 和 x整除
#include <stdio.h>
int main()
{
// 定义变量i
int i = 2;
while( i <= 100 )
{
// 定义标记
int flag = 0;
int j = 2;
while( j < i )
{
if( i%j == 0 )
{
flag = flag + 1;
}
j = j + 1;
}
if( flag == 0 )
{
printf("%d, ", i);
}
i = i + 1;
}
printf("\n");
return 0;
}
for 循环
for 循环的语法:
for ( init; condition; increment )
{
statement(s);
}
流程图
代码示例
#include <stdio.h>
int main()
{
// 初始化两个sum的值
int esum = 0;
int osum = 0;
int i = 0;
for(i=1; i<=100; i=i+2)
{
osum = osum + i;
esum = esum + (i + 1);
}
printf("osum = %d\n", osum);
printf("esum = %d\n", esum);
return 0;
}
do...while 循环
- 在 C 语言中,do...while 循环是在循环的尾部检查它的条件。
- do...while 循环与 while 循环类似,但是 do...while 循环会确保至少执行一次循环。
语法
do
{
statement(s);
}while( condition );
流程图
代码示例
#include <stdio.h>
int main ()
{
/* 局部变量定义 */
int a = 10;
/* do 循环执行 */
do
{
printf("a 的值: %d\n", a);
a = a + 1;
}while( a < 20 );
return 0;
}
break
break能够强制结束当前结构,阻止程序向下执行。
代码示例
#include <stdio.h>
int main()
{
int sum = 0;
int i = 1;
while( 1 )
{
sum = sum + i;
if( i == 100 )
break;
i = i + 1;
}
printf("sum = %d\n", sum);
printf("i = %d\n", i);
return 0;
}
continue
- continue立即结束当前循环体,直接进入下一轮条件判断。
- continue与break不同,并不会结束整个循环。
代码示例:
#include <stdio.h>
int main()
{
int i = 0;
int n = 0;
for(i=1; i<1000; i=i+1)
{
if( i % 7 )
continue;
printf("%d ", i);
n = n + 1;
}
printf("\n");
printf("Count: %d\n", n);
return 0;
}