C语言中一共分为三大基本结构:顺序结构,选择结构(又叫分支结构),循环结构。
分支结构又分为:单分支结构,多分支结构。
if语句三种形式
1.1 if语句
if(表达式)
语句;
如果if语句中表达式为真(非0)则执行其后面的语句,否则不执行该语句。
如果if表达式为真,需执行其后面的语句,但需执行的语句不止一条时,应把需要执行的语句用{ }包裹起来。不然默认只执行和if离的最近的那条语句。
注:if(表达式)后面不能随意加分号,因为加了分号就相当于插入了一条空语句。,else同理。
1.2 if....else语句
if(表达式)
语句1;
else
语句2;
很明显我们从对比能发现else没有表达式,因为在前面if中,如果不满足if的表达式则直接进行else语句。即if(非真),则直接执行else语句。但如果if语句(真)则只执行if语句,而后面的else语句不执行。
1.3 if...else....if语句
if(表达式1)
语句1;
else if(表达式2)
语句2;
.........
else if(表达式n)
语句n;
else
语句n+1;
其功能时依次判断表达式的值,当某一个表达式为真时,则执行其后面的语句,并且执行完之后,其后面的语句都不执行。但如果所有的表达式都为假时,则执行else语句,也就是语句n+1。
switch语句
switch(表达式)
{
case 常量表达式1:语句1;
case 常量表达式2:语句2;
.....
case 常量表达式n:语句n;
default :语句n+1;
}
其功能是,计算表达式的值,并逐个与其后面的常量表式的值相比较,当二者相同时,则执行其常量表达式后面的语句,然后不再执行判断,直接继续执行后面所有case后的语句。如果表达式的值与所有case后的常量表达式的值均不同,则执行default后的语句。
但为了避免执行完一个case后便不再判断而直接执行其后面所有的case语句,我们可以使用break语句
switch(表达式)
{
case 常量表达式1:语句1;break;
case 常量表达式2:语句2;break;
.....
case 常量表达式n:语句n;break;
default :语句n+1;
}
这样我们每一次执行完对应的case语句之后均可以跳出switch语句。
注: 1 在case后面的常量表达式的值不能相同,否则会出现错误。
2 在case后,允许有多个语句,且可以不用{ }括起来。
3 case和default的顺序可以改变,并不会影响结果。
4 default子句可以省略不用。