——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
一.结构类型
(1)顺序结构:程序按书写顺序进行读取编译。
(2)选择结构:程序根据所给条件,判断真假,从而在真假两种情况下选择执行对应的代码段。
(3)循环结构:在满足所给条件时,循环执行给定的代码段。
如图所示:
二.选择结构
- if 语句的4种结构和使用
第一种:if (条件)
{ 语句1} // 如果满足条件,就执行语句1
第二种:if (条件)
{ 语句1}; //如果满足条件就执行语句1
else
{语句2}; // 如果不满足条件,就执行语句2
第三种: 哪一段成立就执行哪一段
if (条件1)
{语句1} // 如果满足条件1,就执行语句1
else if (条件2)
{语句2} // 如果满足条件2,就执行语句2
else if (条件3)
{语句3} // 如果满足条件3,就执行语句3
else
{语句4}; // 如果条件都不满足,就执行语句4
第四种: if (条件)
{语句1} // 如果满足条件,就执行语句1,不满足就不执行语句1
{语句2} // 语句2与条件无关,不管条件是否满足,都会执行
注意:
(1) 判断值是否相等的时候,最好把常量写在==左边,例如(0==a)
因为如果因为粗心将a==0写成了a=0,编译器是不会报错的,但如果把常量写在==左边,0=a,编译器会马上报错,所以把常量写==左边会及时纠正我们的错误
(2) if(条件)后面没有分号”;”
实例应用:求a,b中最大值
#include <stdio.h>
int main()
{
int a=10;
int b=8;
int max; //存放最大值
if(a>b) //选择结构,判断a>b是否为真
{
max=a; //a>b真时,最大值等于a
}
else max=b; //a>b假时,最大值等于b
printf("max = %d\n");
return 0;
}
2.switch语句的使用
(1)switch的结构
switch(数值)
{
case 数值1: //如果数值==数值1,执行语句1,直到遇到break为止
语句1
break;
case 数值2: //如果数值==数值2,执行语句2,直到遇到break为止
语句2
break;
…
default: //如果数值!=数值1,而且数值!=数值2执行语句3,直到遇到break为止
语句3
break;
}
(2)break的作用:退出整个switch语句
(3)如果case后面没有break,就会执行后面所有的case语句,直到遇到break为止
注意:如果要在case后面定义一个新的变量,必须使用{}括住
3. if 和 switch的比较
(1)if 更加灵活,switch 能办到的,if都能办到,但if能完成的,switch 不一定能完成
(2)有些情况下,if 和switch 可以互用
(3)判断大小的时候一般选用if
实例应用:为输入的分数给出成绩等级
#include <stdio.h>
int main
{
int score;
printf("请输入您的成绩:\n");
scanf("%d",&score);
int temp = score / 10;
switch(temp)
{
case 10:
case 9:
printf("您的成绩等级为:A\n"); //成绩在90~100之间为A等级
break;
case 8:
printf("您的成绩等级为:B\n"); //成绩在80~89之间为B等级
break;
case 7:
printf("您的成绩等级为:C\n"); //成绩在70~79之间为C等级
break;
case 6:
printf("您的成绩等级为:D\n"); //成绩在60~69之间为D等级
break;
default:
printf("您的成绩等级为:E\n"); //成绩在0~59之间为E等级
break;
}
return 0;
}
三,循环结构 (while,do while,for)
1. while循环的结构和使用
while(条件)
{
}
(1) 先确定需要重复执行的操作放到循环体{}中,然后再确定约束条件
(2) 若条件成立,执行一次循环体{},然后再判断条件,若成立继续执行循环体{},直到条件不成立,退出整个循环
(3)若一开始,条件就不成立,则永远不会执行循环体{}
(4)若while后面没有{},意味着while后面的那一句代码就是循环体
(5) while 循环中用到的变量必须在循环外面定义
应用实例:求1+2+3……+100
#include <stdio.h>
int main()
{
int i=1;
int sum=0;
while(i<=100)
{
sum += i;
i++;
}
printf("sum = %d\n");
return 0;
}
- do while循环的结构和使用
do {
}while(条件)
不管条件是否成立,先执行一次循环环体{},再判断条件是否成立,若条件成立,继续执行,不成立,则退出循环
应用实例:求1+2+3……+100
#include <stdio.h>
int main()
{
int i=1;
int sum=0;
do{
sum += i;
i++;
}while(i<=100);
printf("sum = %d\n");
return 0;
}
- for循环的结构和使用
for(语句1;条件;语句2)
{
}
(1)语句1:初始化语句;语句2:增量语句(执行完循环体再执行的语句)
(2)for循环一开始,先执行一次语句1,然后判断条件是否成立,若成立,执行一次循环体{},接着执行语句2,然后再次判断条件是否成立
(3)for循环中用到的变量可以在循环中定义
注意:
(1)for()后面没有分号”;”
(2)要注意for循环内部变量的作用域
(3)循环体执行完,循环体内部的变量就意味着被回收
(4)for循环可以嵌套使用
应用实例:输出乘法表
#include <stdio.h>
int main()
{
for(int i=1; i<=9; i++)
{
for(int j=1; j<=i; j++)
{
printf("%d*%d=%d\t",i,j,j*i);
}
printf("\n");
}
return 0;
}
- while,do while,和for循环的比较
一般优先考虑使用for循环(for循环比较灵活,变量可以及时回收),再考虑while循环,最后考虑do while循环 - break 和continue的比较
(1)break使用场合
1> switch 语句中:退出整个switch语句
2>循环结构中(while,do while,for):退出整个循环语句(注意:只对最近的循环体有效)
(2)continue使用场合
循环结构中(while,do while,for):结束当前的这次循环体,进入下一次循环体(注意:只对最近的循环体有效)