1.流程控制结构类型
顺序结构:默认的流程结构,按照书写顺序执行每一条代码
选择结构:对给定的条件进行判断,再根据判断结果来决定执行那一段代码
循环结构:在给定条件成立的情况下,反复执行某一段代码
2.选择结构if语句
1> if 的第一种结构
if(条件)
{
语句1;
语句2;
……..
}
2> if 语句的第二种结构
if (条件)
{
语句1
}
else
{
语句2
}
3> if 语句的第三种结构
if (条件1)
{
语句1
}
else if (条件2)
{
语句2
}
else if (条件3)
{
语句3
}
……..
4> if 的第四种结构,只有条件成立才会执行第一条语句,第二条语句和if语句没有关系不会执行
if (条件)
语句1;
语句2;
3.switch语句
switch(数值)
{
case 数值1:
语句1;
break;
case 数值2:
语句2;
break;
default :
语句3;
break;
}
注意点:
1>break:退出整个switch语句
2>如果case后面没有break,就会执行后面所有case中得语句,直到遇到break为止
3>如果在case后面定义新的变量,必须用大括号{}包住,如果不括住容易出现作用域的情况
4.if 和 switch 对比
1> if 语句能完成的功能,switch并不能一定完成
例:a>6为条件,switch不能使其作为条件
2> 在有些情况下,if语句和switch语句可以互换
3> switch能完成的功能if都能完成
【代码练习】
/*
请输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)
A:90~100
B:80~90
C:70~80
D:60~70
E:0~60
*/
/*第一种方式
#include <stdio.h>
int main()
{
printf("请输入一个整数分值:\n");
int score ;
scanf("%d", &score);
if(score >= 90 && score <= 100){
printf("A\n");
}else if(score >= 80){
printf("B\n");
}else if(score >= 70){
printf("C\n");
}else if(score >= 60){
printf("D\n");
}else {
printf("E\n");
}
return 0;
}*/
/*第二种方式
#include <stdio.h>
int main()
{
printf("请输入一个整数分值为:\n");
int score;
scanf("%d",&score);
switch(score/10){
case 10:
case 9:
printf("A\n");
break;
case 8:
printf("B\n");
break;
case 7:
printf("C\n");
break;
case 6:
printf("D\n");
break;
default :
printf("E\n");
break;
}
return 0;
}*/
/*————————————————————————*/
while循环
1.循环体的运行原理
1>如果一开始条件不成立,永远不会执行循环体
2>如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立。。。。
2.while循环结构:
while(条件)
{
循环体
}
3.while的定义步骤
1>先确定需要重复执行的操作
2>在确定约束条件
3>定义一个变量记录循环次数
4.continue
只要执行continue这段语句,就不会执行下面的代码了,直接结束这一次循环体,进入下次循环
5.break
当执行到break语句,就会直接退出循环,不会进行下次循环
【1.例子】
提示用户输入一个正整数,n,计算1+2+3+4+....+n的和
#include <stdio.h>
int main()
{
int n = 0;//一定要初始化,因为默认有可能会是很大的值
while(n <= 0){
//1.提示输入
printf(“请输入一个正整数:\n”);
//2.接收输入
scanf(“%d”,&n);
}
//3.计算
//(1 + n) * n / 2
//定义变量保存和
int sum = 0;
int num = 0;//默认被加的数值
while(num < n){
num++;
sum += num; // 累加
}
printf(“%d”,sum);
return 0;
}
最简单利用while的死循环
while(1);
do while循环
1.do{
循环体
}while(条件)
2.while和do while的区别
1>很多情况下,while和do while可以互换
2>while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点:不管一开始条件成不成立,至少会执行一次循环体
/*————————————————————————*/
for 循环
1.循环结构
for( 语句1;条件 ;语句2 )
{
循环体
}
语句1:初始化语句
语句2:增量语句(执行完循环体后再执行的语句)
1>for一开始就会执行一次语句1(整个for循环只会执行一次)
2>判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
2.使用注意:
1>//错误1,不要随便for()后面写分号
for(int i = 0; i < 5; i++);
{
printf(“哈哈哈”);
}
2>//错误2,循环体要加上中括号{}
for(int i = 0; i < 5; i++)
int a = 10;
3>//错误3,a++应该不应写在小括号里,应写在中括号里
for(int i = 0; i < 5; i++, a++)
{
int a = 10;
}
最简单利用for循环实现死循环
for( ; ; );
3.for循环的嵌套
【2.例子】
好有列表1
好友1
好友2
好有列表2
好友1
好友2
#include <stdio.h>
int main()
{
for(int i = 0; i < 5; i++)
{
printf(“好友列表%d”,i);
for(int j = 0; j < 6; j++)
{
printf(“ 好友%d”,j);
}
}
return 0;
}
|