------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
一、流程控制
顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
循环结构:在给定条件成立的情况下,反复执行某一段代码。
二、选择结构-if
1. 简单使用
if (表达式) 语句1;
if(count>50) 开班; 上课;
if(表达式) 语句1; else 语句2;
if(count>50) 开班; else 不开班;
if(表达式) { }
if(count>50) {开班; 布置课室;} else {}
{ }的作用域
if -else if-else
if(a==0) else if (a>0) else
特点:只有一个括号会被执行
复合条件
上课时间的取值范围(9~12 || 14 ~17)
陷阱
if(a!=0) { a不是0;} else {a是0;}
if (a); { }
if (a=0)
a == 0;
if (10) int a = 9;
三、选择结构-switch
1. 简单使用
switch(表达式) { case 数值1: break; … default: break;}
举例
int a = 10;
switch (a) {
case 0:
printf("这是一个0");
break;
case 5:
printf("这是一个5");
break;
case 10:
printf("这是一个10");
break;
default:
printf("什么也不是");
break;
}
2. if和switch的对比
很多情况可以互换
if用得比较多,比较灵活,switch只能某个单值
3. 实例
/*输入一个整数score代表分数,根据分数输出等级A-E
A:90~100
B:80~89
C:70~79
D:60~69
E:0~60
*/
#include <stdio.h>
void score_judge(int score)
{//利用switch判断score的等级
char c;
switch(score/10)//score的除10,只判断十位的就可以判定级别
{
case 10:
case 9: c='A';break;
case 8: c='B';break;
case 7: c='C';break;
case 6: c='D';break;
default: c='E';break;
}
printf("%c\n",c);
}
int main()
{
int score ;
while(1)//多次输入数据
{
printf("输入成绩:\n");
scanf("%d",&score);
score_judge(score);
}
return 0;
}
四、循环结构-while
1. 简单使用
连续printf(“俯卧撑”)20次;
while(表达式) { }
continue:输出5次休息一下
#include <stdio.h>
{
int i = 20;
while (i<=20)
{
printf("俯卧撑\n");
}
}
break的使用:某次的时候停止循环
2. 特点
只有条件成立才会执行循环体
五、循环结构-do while
特点:一定会执行一次循环体
while和do while循环对比:
//while()是先判断条件,在执行循环体,此时i<0 不符合条件,因此不执行i++
int i=0;
while(i<0)
{
i++;
}
//do while是先执行一遍循环体,再判断条件,此时i++;然后判断i<0退出循环
int i=0;
do{
i++;
} while(i<0);
六、循环结构for
1.基本结构
for (语句1; 条件; 语句2)
{
循环体
}
语句1:初始化语句
语句2:增量语句(执行完循环体后再执行的语句)
1.for一开始就会执行一次语句1(整个for循环只会执行一次)
2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
2.使用注意
1>不要随便在for()后面写分号
for (int i=0; i<5; i++);
{
printf("哈哈\n");
}
2>变量a的作用域不明确
如果要在循环体中定义新的变量,必须用大括号{}包住
for (int i=0; i<5; i++)
int a = 10;
3>
for (int i = 0; i<10; i++, a++)
{
// a只能用在循环体{}中
int a = 10;
}
4>最简单的利用for循环实现死循环
for(;;);
3.循环嵌套
/*
好友列表1
好友1
好友2
好友列表2
好友1
好友2
好友列表3
好友1
好友2
*/
#include <stdio.h>
int main()
{
for (int i = 1; i<=4; i++)
{
//printf("好友列表%d\n", i + 1);
printf("好友列表%d\n", i);
/*
printf(" 好友1\n");
printf(" 好友2\n");
printf(" 好友3\n");
printf(" 好友4\n");
printf(" 好友5\n");*/
for (int j = 1; j<=7; j++)
{
printf(" 好友%d\n", j);
}
}
return 0;
}
4.break和continue
break:
(1).使用场合
1> switch语句:退出整个switch语句
2> 循环结构:退出整个循环语句
* while
* do while
* for
(2)注意点
只对最近的循环结构有效
continue:
1.使用场合
循环结构:结束当前这次的循环体,进入下一次循环体
* while
* do while
* for
2.注意点
只对最近的循环结构有效