【从饮水机到名人堂之c语言】详解分支语句-创新互联

目录

创新互联公司专注于罗定网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供罗定营销型网站建设,罗定网站制作、罗定网页设计、罗定网站官网定制、重庆小程序开发服务,打造罗定网络公司原创品牌,更为您提供罗定网站排名全网营销落地服务。

前言

一、if 语句

1.语法结构

2.悬空else 

二、switch语句 

1.语句结构

2.在switch语句中的 break

3. default子句

总结


前言

在前面章节的学习中,我们只是对C语言有了一个大致的了解,让我们可以看懂一些简单的程序,从今天开始,我们就要深入的学习C语言的内容。

C 语句可分为以下五类: 1. 表达式语句 2. 函数调用语句 3. 控制语句 4. 复合语句 5. 空语句 而控制语句又分为 条件语句,循环语句和转向语句,我们今天要学习的是控制语句中的 条件语句。
一、if 语句 1.语法结构
//半选择结构
if () {
   表达式;
}
//if else 结构
if () {
   表达式1;
}
else {
   表达式2;
}
//多选择结构
if(表达式1)
    语句1;
else if(表达式2)
    语句2;
else
    语句3;

if 语句的结构,如果if后面的表达式为真时,执行后边的语句,如果表达式为0即为假,当不为0时即为真,如表达式为-1时为真。 

如果执行单条语句时,我们我们可以不带{ },但是我们要输入多条语句时,必须带上大括号{ }。

#includeint main()
{
    if(表达式)
   {
        语句列表1;
   }
    else
   {
        语句列表2;
   }
    return 0

为了更好地掌握if语句,我们可以过下边的几段代码来分析。

代码1中,我们输入age,通过if判断,当age<18时,即说明判断为真,即输出未成年,当我们age>=18时,判断为假,不输出。

#include//代码1
int main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
}

代码2中,输出age,当age<18时输出未成年,else在这里相当于age>=18,即输出成年。

//代码2
#includeint main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("未成年\n");
   }
    else
   {
        printf("成年\n");
   }
}

代码3中 ,这是多分支的条件语句,通过多组else if语句来控制输出,else if和if一样,后边的判断语句为真时,大括号内的语句成立,否则不成立。

//代码3
#includeint main()
{
 int age = 0;
    scanf("%d", &age);
    if(age<18)
   {
        printf("少年\n");
   }
    else if(age>=18 && age<30)
   {
        printf("青年\n");
   }
    else if(age>=30 && age<50)
   {

        printf("中年\n");
   }
    else if(age>=50 && age<80)
   {
        printf("老年\n");
   }
    else
   {
        printf("老寿星\n");
   }
    
}

2.悬空else 

我们先来看这样一段代码。

#includeint main()
{
    int a = 0;
    int b = 2;
    if(a == 1)
        if(b == 2)
            printf("hehe\n");
    else
        printf("haha\n");
    return 0;
}

你是否以为这个程序最终输出 haha ,那就大错特错了,我们可以看到这里有两个if表达式,却只有一个else 表达式,这个时候我们就要考虑到if 和 else 的配对问题,我们C语言的语法中,else会和离它最近的一个if配对,故当第一个if不成立后,不会进行第二个if的判断,故程序的结果应该是没有输出。

我们可以调整一下程序的风格和大括号的使用,这样我们就可以更清楚的理解了。

//适当的使用{}可以使代码的逻辑更加清楚。
//代码风格很重要
#includeint main()
{
    int a = 0;
    int b = 2;
    if(a == 1)
   {
        if(b == 2)
       {
            printf("hehe\n");
       }
   }
    else
   {
         printf("haha\n");
   }       
    return 0;
}

二、switch语句 
switch 语句也是一种分支语句。 常常用于多分支的情况。 比如: 输入 1 ,输出星期一 输入 2 ,输出星期二 输入 3 ,输出星期三 输入 4 ,输出星期四 输入 5 ,输出星期五 输入 6 ,输出星期六 输入 7 ,输出星期日 那我没写成 if...else if ...else if 的形式太复杂,那我们就得有不一样的语法形式。 这就是 switch 语句。
1.语句结构
switch ( 整型表达式 ) {

 case 整形常量表达式:

    语句 ; }

2.在switch语句中的 break

这是我们的一段输出周几的程序,我们来看看效果。

#includeint main()
{
	int day = 0;
	scanf("%d", &day);
	switch (day)
	{
	    case 1:
			printf("星期一\n");
		case 2:
			printf("星期二\n");
		case 3:
			printf("星期三\n");
		case 4:
			printf("星期四\n");
		case 5:
			printf("星期五\n");
		case 6:
			printf("星期六\n");
		case 7:
			printf("星期天\n");
	}
	return 0;
}

但是输出结果为什么是星期三,星期四,星期五,星期六,星期天呢,哪里出了问题呢? 

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

#includeint main()
{
    int day = 0;
    scanf("%d",&day);
    switch(day)
   {
        case 1:
            printf("星期一\n");
            break;
        case 2:
            printf("星期二\n");
            break;
        case 3:
            printf("星期三\n");
            break;    
        case 4:
            printf("星期四\n");
            break;    
        case 5:
            printf("星期五\n");
            break;
        case 6:
            printf("星期六\n");
            break;
        case 7:
            printf("星期天\n");    
            break;
   }
    return 0;
}

这样的话,我们就可以正确的输出了。


3. default子句
如果表达的值与所有的 case 标签的值都不匹配怎么办? 其实也没什么,结构就是所有的语句都被跳过而已。 程序并不会终止,也不会报错,因为这种情况在 C 中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢? 你可以在语句列表中增加一条default子句,把下面的标签 default: 写在任何一个 case 标签可以出现的位置。 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。 所以,每个switch语句中只能出现一条default子句。 但是它可以出现在语句列表的任何位置,而且语句流会像执行一个 case 标签一样执行 default 子句。
#includeint main()
{
	int day = 0;
	scanf_s("%d", &day);
	switch (day)
	{
	case 1:
			printf("星期一\n");
			break;
		case 2:
			printf("星期二\n");
			break;
		case 3:
			printf("星期三\n");
			break;
		case 4:
			printf("星期四\n");
			break;
		case 5:
			printf("星期五\n");
			break;
		default:
			printf("休息日\n");
			break;
	}
	return 0;
}

在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。


总结

通过今天的学习,我们要熟练的掌握几种条件判断语句的用法,并明白背后的道理。

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧

分享标题:【从饮水机到名人堂之c语言】详解分支语句-创新互联
网站网址:https://www.cdcxhl.com/article0/dsocoo.html

成都网站建设公司_创新互联,为您提供响应式网站网站策划自适应网站网站建设营销型网站建设做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

搜索引擎优化