01-Switch-基本概念
if格式:
if(条件表达式)
{
语句...
}
switch格式:
switch(条件表达式)
{
case 整数: // case可以有一个或多个
语句;
break;
case 整数: // case可以有一个或多个
语句;
break;
default:
语句;
break;
}
1.拿到条件表达式返回值(注意返回值 必须是整型)
2.利用条件表达式的返回值 和 switch 后面大括号的每一个case进行比较, 判断条件表达式的返回值 和 case后面的整数是否相等 条件表达式 == 整数
3.如果条件表达式的返回值 等于 某一个case后面的整数, 那么就会执行该case后面的语句
4.执行完语句 之后 如果遇到break 就会结束整个switch语句, 也就是说后面的所有语句 都不会被执行
5.如果前面的case 不满足, 也就是前面的case的整数 和 条件表达式的返回值 不相等 就会 继续判断后面的case
6.如果前面的所有case都不满住, 就会执行 default后面的语句
/*
结束switch语句
1.遇到break
2.执行到switch对应大括号的结束 }
*/
// break 的作用 用于结束switch语句
//没有写break 注意 : 如果switch中有一个case满足了条件, 那么其他所有的case 和 default都会失效
02-Switch-注意点
1.switch的条件表达式注意点
switch的条件表达式 必须是返回整数的表达式, 也就是说()中只能放整数
或者写能够转换为证书的类型也可以 例如char可以转换int类型, 所以写char也可以
2.case的取值
switch中, case后面只能放返回值是整数的表达式或者整数,或者能够转换为整数的类型
case的取值 不能重复
case后面不能放变量,因为系统在编译的时候对 switch后面所有的case进行优化, 会根据case后面的常量值,生成一张取值表
default的位置问题
switch的default可以随便放
无论default写在什么地方, 他都会最后执行(只有前面所有的case都不满住的情况下才会执行)
只要有某一个case满足, 那么所有的case都会失效
同理 : 只要default满足,那么所有的case都会失效
03-Switch-练习1
什么时候用switch,什么时候用if
在开发中一般情况下用if, if比较灵活
如果说对一些固定的值进行判断, 并且这些值得数量不多的情况,可以使用switch
从理论上来说,switch的性能效率比if高
04-Switch-练习2
getchar(); // 专门用来获取字符,或从输入缓冲区中获取字符
05-while-基本概念
while (条件表达式)
{
语句...
}
while 是对给定的条件进行判断, 如果条件满足,就执行while后面大括号的内容,执行完毕之后会再次判断条件表达式,如果满足会再次执行while后面大括号的内容,直到 条件表达式不满足为止
术语 : while后面大括号的内容, 称之为 循环体
while的应用场景 : 当我们需要反复的执行 某一段代码的时候 就可以使用while
注意点 : 和if一样,如果条件表达式一开始就不满足,那么循环体就不会被执行
06-累加思想
注意: break只能用在switch和循环结果中, 离开这两个东西 没有任何的效果
思想 : 累加思想, 通过循环来进行累加
07-计数器思想
计算器思想,如果以后开发中想获取什么中有多少个什么,第一个时间就要想到计算器思想
08-while-练习3
使用系统的声音 1>导入stdlib.h 2>使用system的方法
system("say huatenghudong");
09-While-注意点
最简单的死循环 while (1);
10-break-基本概念
用于跳出循环
11-continue-关键字
只要看到continue,那么后面所有语句都不会执行,会执行再次去判断条件表达式
12-dowhile
do
{
}while(条件表达式);
do while和while的区别;
while如果条件表达式 一开始就不满足, 那么循环体永远不会被执行
do while如果条件表达式一开始就不满足, 同样会执行一次 循环体
也就是说, 无论条件表达式是否满足, do while始终会执行一次循环体
一般情况下,能用while就用while
do while一般用于校验
---
int number = -1;
do {
printf("请输入一个整数\n");
scanf("%i",&number);
} while (number <= 0);
13-for循环-基本概念
for (初始化表达式;条件表达式;循环后增值表达式)
{
语句;
...
}
条件表达式 : 和 while,dowhile一样,只有条件满足才会执行循环体
初始化表达式 : 在整个for循环的生命周期中,初始化表达式 只会执行一次
循环后增值表达式 : 会在每次循环体之后 完毕之后调用一次
14-for和while对比
while
什么时候用while?
如果用于控制循环的增量 在循环执行完毕之后换需要使用,那么可以使用while
for
如果用于控制循环的增量 在循环执行完毕之后不需要使用了, 那么可以使用for
15.for循环-注意点
1.任何数值都有真假性
2.for也可以省略大括号,for省略大括号的时候,只会执行离他最近的一条语句
3.作用域混乱
4.空语句
5.其实,初始化表达式 和 循环后增量表达式 可以写多条语句, 语句之间用,链接
6.作用域问题
7.最简单的死循环
16-循环嵌套-基本概念
结论 : 循环嵌套执行的次数 等于 : 外循环执行的次数 * 内循环执行的次数
17-循环嵌套-练习1
外循环控制行数
内循环控制列数
18-循环嵌套-练习2
for (初始化表达式; 条件表达式 ;循环后增值表达式) {
}
尖尖朝上 : 修改内循环的 条件表达式
尖尖朝下 : 修改内循环的 初始化表达式
---
1.倒三角形
***
**
*
for (int i = 0; i < 3; i++) {
for (int j = i; j < 3; j++) {
printf("*");
}
printf("\n");
}
---
2.正三角形
for (int i = 0; i < 3; i++) {
for (int j = 0; j <= i; j++) {
printf("*");
}
printf("\n");
}
19-循环嵌套-练习3
--*
-***
*****
涉及到正三角 和 倒三角的组合使用
for (int i = 0; i < 3; i++) {
for (int j = i; j < 2; j++) {
printf("-");
}
// 0 * 2 = 0 (0) 1颗星
// 1 * 2 = 2 (0~2) 3颗星
// 2 * 2 = 4(0~4) 5颗星
for (int k = 0; k <=i * 2; k++) {
printf("*");
}
printf("\n");
}
20-99乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
// 1 * 1 = 1
//
printf("%i * %i = %i\t",j,i,i*j);
}
printf("\n");
}
---
快捷键
修改某一块的命名 command + control + e