顺序结构的语句有两种:if语句和switch语句
什么是语句呢?
C语言由一个分号(;)隔开的就是一条语句比如:
printf ("hehe");
1+2;
; //它也是一条语句,空语句
if语句语法结构有三种:
- if (表达式)
语句; //单分支
演示代码:
#include<stdio.h>
int main()
{
int age=20;
if (age<18)
printf("未成年\n");
return 0;
}
- if (表达式)
语句1;
else
语句2; //双分支
演示代码:
#include<stdio.h>
int main()
{
int age=20;
if (age<18)
printf("未成年\n");
else
printf("已成年\n");
return 0;
}
- if (表达式)
语句1;
else if (表达式)
语句2;
else
语句3;
演示代码:
#include<stdio.h>
int main()
{
int age=10;
if (age<18)
printf("未成年\n");
else if(age>=18&&age<28)
printf("青年\n");
else if(age>=28&&age<50)
printf("壮年\n");
else
printf("老年\n");
return 0;
}
也可这样写这个代码:
#include<stdio.h>
int main()
{
int age=10;
if(age<18)//大于18岁都已成年
printf("未成年\n");
else
{
if(age>=18&&age<28)
printf("青年\n");
else if(age>=28&&age<50)
printf("壮年\n";
else
printf("老年\n");
return 0;
}
如果表达式的结果为真,则语句执行
而在C语言中,0表示假,非0表示真
如果条件成立,要执行多条语句,可以使用代码块"{ }"执行语句:
#include<stdio.h>
int main()
{
int age=10;
if(age<18)//大于18岁都已成年
{
printf("未成年\n");
printf("不能谈恋爱\n");
}
else
{
if(age>=18&&age<28)
printf("青年\n");
else if(age>=28&&age<50)
printf("壮年\n";
else
printf("老年\n");
return 0;
}
else会跟离自己最近未匹配的if进行匹配:
/*错误代码示范
#include<stdio.h>
int main()
{
int a=0;
int b=2;
if(a==1)
if(b==2)
printf("hehe\n");
else //此else是跟if(b==2)匹配,但先执行的是if(a==1)所以无输出
printf("haha\n");
return 0;
}
此代码无输出*/
/*有输出代码*/
#include<stdio.h>
int main()
{
int a=0;
int b=2;
if(a==1)
{
if(b==2)
printf("hehe\n");
}
else //此else是跟if(a==1)匹配,而if(a==1)为假,所以输出haha
printf("haha\n");
return 0;
}
if书写形式的对比:(代码一跟代码二对比,代码二更易懂
/*演示代码一*/
if (condition)
{
return x; //条件成立返回x
}
return y; //条件不成立返回y
/*演示代码二*/
if(conditiion)
{
return x; //条件成立返回x
}
else
{
return y; //条件不成立返回y
}