------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1.选择
1)结构
1.if
- 1>if的第1种结构
- if(条件) //if()后不要写分号
- {
- 语句1;
- 语句2;
- ......
- }//条件为真时,会执行里面所有语句。
- 2>if的第2种结构
- if(条件1)
- {
- 语句1;
- 语句2;
- ......
- }
- else
- {
- } //条件1为真时,执行{}内语句;为假执行else{}里面的语句
- 3>if的第3种结构
- if(条件1)
- {
- 语句1;
- 语句2;
- ......
- }
- else if(条件2)
- {
- }
- else if(条件3)
- {
- }
- else if(条件4)
- {
- }
- else
- {
- }//从上倒下依次判断,若其中一个条件成立,不再继续向下判断
- 4>if的第4种结构
- if (条件)
- 语句1;
- 语句2;
- //如果条件成立,只执行后面第一条语句,语句2和if没有关系
2)特点
1>条件可以为真假值 2>判断值是否相等或比较大小,常量值放左边,变量值放右边 3>注意赋值运算符不要写成两个等号= 4>else总是和前面最近的、没有else相匹配的if相匹配 5>下面的代码是错误的:作用域不明确if (10 > 6)
int a = 5;
如果要在if后面的语句中定义新的变量,必须用大括号{}
输入一个整数score代表分数,根据分数输出等级(A-E)
- #include <stdio.h>
- int main()
- {
- int score;
- printf("请输入一个0到100之间的分数\n");
- scanf("%d",&score);
- if ((score >= 0)&&(score < 60)) {
- printf("E\n");
- }
- else if ((score >= 60)&&(score < 70)) {
- printf("D\n");
- }
- else if ((score >= 70)&&(score < 80)) {
- printf("C\n");
- }
- else if ((score >= 80)&&(score < 90)) {
- printf("B\n");
- }
- else if ((score >= 90)&&(score <= 100)) {
- printf("A\n");
- }
- else
- printf("请输入一个0到100之间的分数");
- }
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- // 1.提示输入
- printf("请输入分数值:\n");
- // 2.接收输入
- int score;
- scanf("%d", &score);
- // 3.判断等级 (性能最高)
- if (score>=90 && score<=100) { // [90, 100]
- printf("A\n");
- } else if (score>=80) { // [80, 89]
- printf("B\n");
- } else if (score>=70) { // [70, 79]
- printf("C\n");
- } else if (score>=60) { // [60, 69]
- printf("D\n");
- } else { // (-∞, 59]
- printf("E\n");
- }
- return 0;
- }
2.switch
1)结构
switch (数值)
{
case数值1:
break;
case数值2:
break;
case数值3:
break;
default:
break;
}
2)特点
1>默认情况下,只有一个case后面的代码会被执行
2>如果一个case后面没有break,而且这个case成立,就会按顺序执行后面所有case中的语句,直到遇到break为止
3>如果要在case后面定义一个新的变量,必须用大括号{}包住
输入一个整数score代表分数,根据分数输出等级(A-E)
- #include <stdio.h>
- int main()
- {
- int score = 100;
- switch (score/10) {
- case 10: // 100
- case 9: // 90+
- printf("A\n");
- break;
- case 8: // 80+
- printf("B\n");
- break;
- case 7: // 70+
- printf("C\n");
- break;
- case 6: // 60+
- printf("D\n");
- break;
- default:
- printf("E\n");
- break;
- }
- return 0;
- }
if和switch的区别
1> if语句能完成的功能,switch并不一定能完成 2> 在有些情况下,if语句和switch语句可以互换
3> switch能完成的功能,if语句都能完成
4> if比较灵活,switch只能是某个数值2、循环结构
1.while
1)结构
while (条件)
{
循环体
}
1).先确定需要重复执行的操作; 2).再确定约束条件;2)运行原理
1).如果一开始条件就不成立,永远不会执行循环体
2).如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......
最简单的死循环
while(1);
2.do while
1)结构
do {
} while(条件);
while和do-while的区别
2)注意点
1.很多情况下,while和do while可以互换
2.while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点:不管一开始的条件是否成立,至少会执行一次循环体
3.最好使用while
特点:不管条件是否成立,至少会执行一次循环体
3.for
1)结构
for (语句1;条件; 语句2)
{
循环体
}
语句1:初始化语句
语句2:增量语句(执行完循环体后再执行的语句)
2)特点
1.for一开始就会执行一次语句1(整个for循环只会执行一次)
2.判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
- #include <stdio.h>
- int main()
- {
- int count = 0;
- for (int count = 0; count < 5; count++)
- {
- printf("第%d个\n", count);
- }
- return 0;
- }
注意点:
1>不要随便在for()后面写分号
2>注意循环体中变量的作用域
3>注意for()循环执行顺序,相同变量的情况下,优先由内向外找值while循环与for循环的比较:
1>while循环,变量在外
2>for循环,变量在内,运行完可以直接回收2)for循环嵌套
1> 输出九九乘法表
- #include<stdio.h>
- int main()
- {
- int i,j;//定义变量
- for(i = 1; i <= 9; i++)//控制行,也就是控制第一数
- {
- for(j = 1; j <= i; j++)//如果j<=i则停止循环,意思是让j<=i
- {
- printf("%d*%d=%d ", i, j, i*j);输出
- }
- printf("\n");
- //这两个FOR循环其实是i控制1-9数(可以理解成行),让j每次从1开始依次与当前的i相乘,当j大于i停止第二的循环,i++,然后继续j的for循环
- }
- return 0;
- }
3.break continue
1)break:
1>使用场合Ⅰ switch语句:退出整个switch语句 Ⅱ 循环结构:退出整个循环语句 * while * do while * for2>注意点
只对最近的循环结构有效
2)continue:
1>使用场合循环结构:结束当前这次的循环体,进入下一次循环体 * while * do while * for2>注意点
只对最近的循环结构有效
4.流程控制总结
1)if特点:同一时刻,只有一个大括号里面的代码会被执行2)switch特点:
1>默认情况下,只有一个case后面的代码会被执行 2>如果一个case后面没有break,就会执行后面所有case中的语句,直到遇到break 3>如果在case后定义一个新变量,必须用大括号{}包住
3)while特点:如果一开始条件不成立,永远不会执行循环体 4)do while特点:不管条件是否成立,至少会执行一次循环体 5)for特点:for循环内的变量,在运行完后可以及时回收 6)循环的选择:一般优先使用for循环,然后在考虑while循环,最后do while
5.优先考虑使用
1>一般优先使用for循环
2>然后再考虑while
3>最后再考虑do while
------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------