C语言学习第三天。
一、分支结构
C语言分支结构包括if语句、if...else语句、嵌套if语句、switch语句、嵌套switch语句。
1.1、if语句
if(表达式) {
语句块1;
...
}
后续语句;
1.2、if...else语句
if(表达式){ //如果表达式为真,则执行语句块1,否则执行语句块2
语句块1;
}else{
语句块2;
}
后续语句;
注意:else不能单独使用。
1.3嵌套if语句
if(表达式1){
语句块1;
if(表达式2){
语句块2;
}else{
语句块3;
}
}else{
语句块4;
}
注意:当if else后面只有一条语句时, if else后面的大括号可以省略,但当if else后面的大括号被省略时, else采用就近原则,会自动和距离最近的一个if匹配。
1.4switch语句
switch是多分支选择结构,在多分支选择中更简洁。
switch(表达式){
case 常量表达式1:
语句1;
break;
case 常量表达式2:
语句2;
break;
case 常量表达式n:
语句n;
break;
default:
语句n+1;
break;
}
注意:(1)case的值只能是常量, 并且还必须是整型, 或者可以被提升为整型的值(char、short)且后面常量表达式的值不能相同。
(2)switch中default可以省略,且位置不一定要写到最后, 无论放到哪都会等到所有case都不匹配才会执行。
1.5嵌套switch语句
switch(表达式1) {
case 常量表达式1:
语句1;
switch(表达式2) {
case 常量表达式2:
语句2;
break;
...
}
break;
case 常量表达式3:
语句3;
break;
}
二、循环结构
C语言中提供了三大循环结构, 分别是while、do while和for。循环结构是程序中一种很重要的结构,其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止;给定的条件称为"循环条件",反复执行的程序段称为"循环体"。
2.1、while循环
while(循环条件)
{
循环语句;
}
注意:要记着在循环体中改变循环变量的值,否则会出现死循环;循环体如果包括有一个以上的语句,则必须用{}
括起来,组成复合语句。
2.2、do while循环
do while循环先执行循环中的执行代码块,然后再判断while中表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do while循环至少要执行一次循环语句。
do
{
循环语句;
}while(循环条件);//分号必须加
2.3、for循环
for(表达式1;表达式2;表达式3){
循环语句;
}
for循环的执行过程:
- 执行表达式1,对循环变量做初始化;
- 判断表达式2,若其值为真(非0),则执行for循环体中执行代码块,然后向下执行;若其值为假(0),则结束循环;
- 执行表达式3,(i++)等对于循环变量进行操作的语句;
- 执行for循环中执行代码块后执行第二步;第一步初始化只会执行一次 ;
- 循环结束,程序继续向下执行。
注意:for循环中的“表达式1、2、3”均可不写为空,但两个分号(;;)
不能缺省。表达式1和表达式3可以是一个简单表达式也可以是多个表达式以逗号分割。
对于以上三种循环结构,都可以嵌套使用,但一般情况下最多使用三重循环,以免程序可读性变差。
三、跳转
C语言中提供了四大跳转语句, 分别是return、break、continue、goto。
- break:立即跳出switch语句或循环语句,在多层循环中,一个break语句只向外跳一层。
- continue:结束本轮环,进入下一轮循环。
- goto:略
- return:结束当前函数,返回结果值。
四、总结
分支选择结构,循环结构,这是编程语言最常用的几种结构,需要熟练掌握,当然了这两种结构并不是很困难的,但需要我们细致分析程序结构,且最好养成良好的代码风格。例如在分支结构中我们在碰到以下情况:
#include<stdio.h>
int main() {
int num = 10;
if (10 == num){ //把常量写在左边以免出现下述情况。
printf("良好的代码风格!");
}
if (num = 5) { //这里错把“==”写成“=”相当于把5赋值给num。
printf("我是错误的,但不会报错");
}
return 0;
}