程序结构:
结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。
它的主要观点是采用自顶向下、逐步求精及模块化的程序设计方法;使用三种基本控制结构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造。结构化程序设计主要强调的是程序的易读性。
◦ 顺序结构:默认的流程结构。按照书写顺序从上至下执行每一条语句。
◦ 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
◦ 循环结构:在给定条件成立的情况下,反复执行某一段代码。
Switch
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2; ...
break;
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
◦ 表达式的类型(case语句后的值)必须是整型或可以转变为整型的值 (byte、short、char和int类型)。
case的值1、值2…值n只能为常数或常量,不能为变量。
如果在case后面定义的变量必须加上大括号
switch (10){
case num:{
int num = 5;
printf("num = %d", num);
break;
}
default:
printf("error\n");
break;
}
switch中case后面的表达式的值不能相同
1.拿到条件表达式的返回值(注意返回值必须是整型)
2.利用条件表达式的返回值和switch后面大括号中的每一个case进行比较, 判断条件表达式的返回值和case后面的整数是否相等 条件表达式 == 整数
3.如果条件表达式的返回值等于某一个case后面的整数, 那么就会执行该case后面的语句
4.执行完语句之后如果遇到break就会结束整个switch语句, 也就是说后面的所有语句都不会被执行
5.如果前面的case不满足, 也就是前面的case的整数和条件表达式的返回值不相等就会继续判断后面的case
6.如果前面所有的case都不满足, 就会执行default后面的语句
循环结构
其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。给定的条件称为循环条件,反复执行的程序段称
while
while ( 条件 )
{
语句1;
语句2;
....
}
如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行
◦ 累加思想
原理:通过循环的形式进行累加操作,定义变量记录每次变化后的结果
计数器:
原理:通过循环的形式进行计数操作, 通过变量记录每次变化的值
应用场景:当以后 要求在什么什么 中 里面有多少个什么的时候,立刻想到计数器思想
do-while循环
do {
语句1;
语句2;
….
} while ( 条件 );
当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环
当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环
for循环
1.for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
2.执行过程:for循环开始时,会先执行初始化表达式,而且在整个循环过程中只执行一次初始化表达式
接着判断循环条件表达式,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容)
循环体执行完毕后,接下来会执行循环后的操作表达式,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环
3. for循环的其他形式
表达式省略(三个表达式都可以省略)
如:for(; ;) 语句相当于while(1) 语句,即不设初值,不判断条件(认为表达式2为真值),循环 变量不增值。无终止地执行循环体。
循环控制无关的任意表达式
表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达 式,中间用逗号间隔。
for(sum=0,i=1;i<=100;i++) sum=sum+i;或
for(i=0,j=100;i<=j;i++,j--) k=i+j;
// 表达式1和表达式3都是逗号表达式,各包含两个赋值表达式,即同时设两个初值,使两个变量增值.
循环嵌套
1.循环语句的循环体中存在其他的循环语句就是循环嵌套,称之为循环嵌套
// 外循环控制行数
// 内循环控制列数
尖尖朝上: 修改内循环的 条件表达式
尖尖朝下: 修改内循环的 初始化表达式
*
**
***
for (int i = 0; i < 3; i++) {
for (int j = 0; j <= i; j++) {
printf("*");
}
printf("\n");
***
**
*
for (int i = 0; i < 3; i++) {
for (int j = i; j < 3; j++) {
printf("*");
}
printf("\n");
break
在多层循环中,一个break语句只向外跳一层
continue
continue语句的作用是跳过循环体中剩余的语句而继续下一次循环