选择结构
if…else 语句
if…else 语句的一般形式:
if (判断条件)
{
//满足条件时执行此代码块1;
}
else
{
//不满足条件时执行此代码2;
}
if…else 语句的流程图为:
例如,利用键盘输入两个数 a 和 b,编写代码输出其中最大的那个数。
#include<stdio.h>
int main()
{
int a, b,max;
printf("input a and b:");
scanf("%d %d", &a, &b);
if (a > b)
{
max = a;
}
else
{
max = b;
}
printf("max = %d\n", max);
return 0;
}
/*
结果为
input a and b:12 4
max = 12
*/
switch 语句
switch 是另外一种选择结构的语句,可以用来代替简单的、拥有多个分支的 if…else 语句。
switch 语句格式如下:
switch(表达式)
{
case 整型数值1: 语句 1;break;
case 整型数值2: 语句 2;break;
......
case 整型数值n: 语句 n;break;
default: 语句 n+1;break;
}
由于 default 是最后一个分支,匹配后不会再执行其他分支,所以也可以不添加break语句。
注意:
case 后面必须是一个整数,或者是结果为整数的表达式,
break 是C语言中的一个关键字,专门用于跳出 switch 语句。所谓“跳出”,是指一旦遇到 break,就不再执行 switch 中的任何语句。
#include<stdio.h>
int main()
{
int a;
printf("Input integer number:");
scanf("%d", &a);
switch (a)
{
case 1: printf("Monday\n"); break;
case 2: printf("Tuesday\n"); break;
case 3: printf("Wednesday\n"); break;
case 4: printf("Thursday\n"); break;
case 5: printf("Friday\n"); break;
case 6: printf("Saturday\n"); break;
case 7: printf("Sunday\n"); break;
default:printf("Error\n"); break;
}
return 0;
}
循环结构
for 循环
for 循环的一般形式为:
for(表达式1; 表达式2; 表达式3)
{
//语句块;
}
它的运行过程为:
-
先执行 表达式1。
-
再执行 表达式2 ,如果值为真(非0),则执行循环体,否则结束循环。
-
执行完循环体后再执行 表达式3。
-
重复执行步骤 2) 和 3),直到 表达式2 的值为假,就结束循环。
表达式1 仅在第一次循环时执行,以后都不会再执行,可以认为这是一个初始化语句。
表达式2一般是一个关系表达式,决定了是否还要继续下次循环,称为“循环条件”。
表达式3很多情况下是一个带有自增或自减操作的表达式,以使循环条件逐渐变得“不成立”。
此处不得不说一说 i++ 与 ++i 的区别。
主要区别有两个:
- i++ 返回原来的值,++i 返回加1后的值。
- i++ 不能作为左值,而++i 可以。
for 循环的流程图为:
例如,编写代码计算1+2+3+…+100的值。
#include<stdio.h>
int main()
{
int sum = 0;
int i;
for (i = 1; i <= 100; i++)
{
sum = sum + i;
}
printf("sum = %d\n", sum);
return 0;
}
/*
结果为:
sum = 5050
*/
while 循环
while 循环的一般形式为:
while(表达式){
//语句块
}
通常将 表达式 称为 循环条件,把 语句块 称为 循环体,整个循环的过程就是不断地判断循环条件、并执行循环体的过程。
同样之前 for 循环的例子。(编写代码计算1+2+3+…+100的值。)
#include<stdio.h>
int main()
{
int sum = 0, i = 1;
while (i <= 100)
{
sum += i;
i++;
}
printf("sum = %d\n", sum);
return 0;
}
/*
结果为:
sum = 5050
*/
do-while 循环
do-while 循环的一般形式为:
do{
语句块
}while(表达式);
最后那个分号必须有,不能丢。
do-while 循环先执行 语句块 ,然后再判断表达式是否为真,若为真则继续循环;若为假,则终止循环。
再次重复循环的那个例子。(编写代码计算1+2+3+…+100的值。)
#include<stdio.h>
int main()
{
int sum = 0, i = 1;
do{
sum += i;
i++;
} while (i <= 100);
printf("sum = %d\n", sum);
return 0;
}
/*
结果为:
sum = 5050
*/
比较常用的循环是 for 循环和 while 循环…