首页 > 编程知识 正文

c语言ifelse语法结构,c语言ifelse组合方式

时间:2023-05-03 06:01:43 阅读:196633 作者:1866

目录 分支语句(选择结构)if else语句switch case语句break语句default:子句

分支语句(选择结构)

分支语句:if else 语句,switch case 语句
C语言中由一个分号(;)隔开的就是一条语句。

if else语句

if 语句是一种分支结构,当条件满足时,有“执行该操作语句”和“跳过执行该操作语句”的两条分支。 if 语句的格式如下:
**if (条件表达式)
{语句;}

if (条件表达式)
{语句1;}
else
{语句2;}**

if (条件表达式1)
{语句1;}
else if (条件表达式2)
{语句2;}
else
{语句3;}


说明:
在C语言中:0表示假,非0 表示真。
该条件表达式可以是关系表达式、逻辑表达式、算术表达式或混合表达式等。只要其值为真或非零均执行相对应的 if 体(if相对应的语句)。
单独使用if条件句没有else条件句也是可以的

//关系表达式,当 a>6 时表达式值为真,执行if体if (a>5) Statement; //逻辑表达式,只要a、b中有一个为真,结果为真,执行if体if (a||b)Statement; //算术表达式,只要该表达式的值非0,结果为真,执行if体if (5-9)Statement; //关系、逻辑混合表达式,只要age>=60或age<=10其中一项为真,结果为真,执行if体if (age>=60 ||age<=10)Statement;

if条件句举例如下:
例:未成年:小于18岁的人;青年:大于18岁且小于30岁;壮年:大于30岁且小于50岁;中年:大于50岁且小于60岁;老年:大于60岁。

#include <stdio.h>int main(){//未成年:小于18岁的人;青年:大于18岁且小于30岁;壮年:大于30岁且小于50岁;//中年:大于50岁且小于60岁;老年:大于60岁。int age = 0;printf ("请输入您的年龄:");scanf ("%d",&age);if (age >= 18 && age < 30)//一对{ }花括号内就是一个代码块{printf ("%d岁是青年!",age);}else if (age >= 30 && age < 50){printf ("%d岁是壮年!",age);}else if (age >= 50 && age < 60){printf ("%d岁是中年!",age);}if (age >= 60){printf ("%d岁是老年!",age);}return 0;}

注意:

#include <stdio.h>int main(){int a = 0;int b = 2;if (a == 1) if (b == 2)printf ("hehen");else printf ("hahan");return 0;}

上面的代码无输出内容。因为就近原则,else 只跟离它最近的那个if语句进行匹配。
所以if else 语句下当有多句代码要执行时,代码块前后必须加上花括号{};表示它是一个代码块。

switch case语句

switch语句也是一种分支语句,常常用于多分支的情况。switch语句也允许嵌套使用。
sitch case 语句语句的格式如下:
switch (整型表达式)
{
case 整型常量表达式1: 语句1
case 整型常量表达式2: 语句2



case 整型常量表达式n: 语句n
default: 语句n+1
}

说明:
switch()语句括号内必须是整型常量表达式,浮点类型、结构体、指针都不行。
swtich()整型常量表达式匹配哪个case整型常量表达式则直接跳转执行哪个case语句。
枚举类型也可以和switch case语句相结合使用。

在switch case语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
如果不使用break:

#include <stdio.h>int main(){int day = 0;printf ("请输入day:");scanf ("%d",&day);switch (day){case 1:printf ("星期一n");case 2:printf ("星期二n");case 3:printf ("星期三n");case 6:printf ("星期六n");case 7:printf ("星期天n");}return 0;}

输出:

请输入day:2星期二星期三星期六星期天请按任意键继续. . .

执行流程如下:

break语句

不用break则所有的case语句从匹配执行的那一个开始顺序往下全部执行。
正确使用break语句如下:

switch (day){case 1:printf ("星期一n");break;case 2:printf ("星期二n");break;case 3:printf ("星期三n");break;case 6:printf ("星期六n");break;case 7:printf ("星期天n");break;}

输出:

请输入day:2星期二请按任意键继续. . .

执行流程如下:

break语句的实际效果是把语句列表划分为不同的部分。break语句直接从case语句后跳出所有的switch分支语句。
建议在每一个case语句后面加上一条break语句。

default:子句

default子句
如果switch语句表达所有的值与所有的case语句的值都不匹配怎么办?
其实也没什么,结果就是所有的语句都被跳过而已,程序并不会终止,也不会报错,因为这种情况在C中并不认为是错误的。
但是你要是并不想忽略不匹配case语句表达式的值就需要在语句列表中增加一条default子句。

写在任何一个case标签可以出现的位置。
当switch表达式的值并不匹配所有的case标签的值时,这个default子句后面的语句就会执行。
每个switch语句中只能出现一条default子句。但是他可以出现在语句列表的任何位置,而且语句留会像贯穿一个case语句一样贯穿default子句。
最好在每个swtich语句中都放一条default。

例如:

#include <stdio.h>int main(){int day = 0;printf ("请输入day:");scanf ("%d",&day);switch (day){case 1:printf ("星期一n");break;case 2:printf ("星期二n");break;case 3:printf ("星期三n");break;case 6:printf ("星期六n");break;case 7:printf ("星期天n");break;default:printf("输入的数字错误!!!");//当输入12367以外的其他值时就会执行default语句。}return 0;}

执行流程如下:

当输入的day值不是case表达式的值时,就会执行default语句printf("输入的数字错误!!!");。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。