【C语言】选择语句(分支语句)

这篇具有很好参考价值的文章主要介绍了【C语言】选择语句(分支语句)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


㊙️小明博客主页:➡️ 敲键盘的小明 ㊙️
✅关注小明了解更多知识☝️



前言

提示:本篇文章为C语言选择语句的个人总结,内容如若有误,请及时联系我更正。

  • 转载请注明原创,谢谢。

【C语言】选择语句(分支语句),c语言,开发语言

提示:以下是本篇文章正文内容:

一、什么是选择语句?

  假设你在水果摊购买一斤的水果,摊主会根据你购买的水果种类来计算价格。

行情:
 苹果🍎 7 7 7 / / /斤,葡萄🍇 8 8 8 / / /斤,
 香蕉🍌 5 5 5 / / /斤,草莓🍓 20 20 20 / / /

在这个场景中,选择语句就像摊主,根据你购买的水果种类(不同的条件)来计算不同的价格(执行不同的操作)。


二、if语句


注:C语言中:0表示假,非0表示真


1. 语句格式

🔴单分支

if(表达式)
{
	语句;
}

过程: 先计算“条件”表达式的值,如果该值不等于 0 0 0 ,表达式值为,执行“语句”,否则表达式值为,不执行“语句”

🔴双分支

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

过程: 先计算“条件”表达式的值,如果该值不等于 0 0 0 ,表达式为,否则表达式为
  表达式为真时,执行“语句1”,表达式为假时,执行“语句2”

🔴多分支

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

过程:

  1. 先计算表达式1的值,如果为,则执行“语句1”
  2. 如果表达式1,则不执行“语句1”,开始计算表达式2的值,如果为,则执行“语句2”
  3. 如果表达式2也为假,则执行“语句3”

2. if语句的使用方法

🔴单分支

#include<stdio.h>
int main()
{
	int m = 2;
	if(m < 5)
	{
		printf("小于5\n");
	}
	
	return 0;
}

运行结果:
【C语言】选择语句(分支语句),c语言,开发语言

过程: 我们将 2 2 2 赋值给 m m m ,在执行选择语句时, 2 2 2 确实是小于 5 5 5 ,则用于判断的表达式为,则执行了输出语句printf在屏幕上打印了: 小于 5 5 5

🔴双分支

#include<stdio.h>
int main()
{
	int m = 6;
	//int m = 4;
	if (m < 5)
	{
		printf("小于5\n");
	}
	else
	{
		printf("大于5\n");
	}

	return 0;
}

运行结果:
【C语言】选择语句(分支语句),c语言,开发语言

过程:
情况1: 同单分支一样,小于 5 5 5 的情况就是在屏幕上打印 小于 5 5 5
情况2: 6 6 6 赋值给 m m m 时,在执行选择语句时, 6 6 6 是大于 5 5 5 的,用于判断的表达式 ( 6 < 5 ) (6<5) (6<5),则不执行 i f if if 中的语句,转去执行 e l s e else else 中的语句,在屏幕上打印了: 大于 5 5 5

🔴多分支

#include<stdio.h>
int main()
{
    int age = 0;
    scanf("%d", &age);
    if (age >0)
    {
        if (age >= 18 && age <= 35)
        {
            printf("青年!\n");
        }
        else if (age < 18)
        {
            printf("未成年!\n");
        }
        else if (age > 35 && age <= 55)
        {
            printf("中年!\n");
        }
        else
        {
            printf("老年!\n");
        }
    }
    else
    {
        printf("输入年龄有误!!!\n");
    }
    return 0;
}

运行结果:
【C语言】选择语句(分支语句),c语言,开发语言

表达式不成立是不会进入该 i f if if 语句中的!

过程:
表达式1: 输入的值如果大于 0 0 0 ,则表达式1成立。
表达式2: 输入的值如果大于 18 18 18 并且小于 35 35 35 则表达式2成立,在屏幕上打印 青年!
表达式3: 输入的值如果小于 18 18 18 则表达式3成立,在屏幕上打印 未成年!
表达式4: 输入的值如果大于 35 35 35 且小于 55 55 55 则表达式4成立,在屏幕上打印 中年! ,如果表达式2、3、4 都不成立说明我们输入的年龄大于 55 55 55 的,则在屏幕上打印 老年!

如果输入的值为负数,则表达式1不成立,直接跳到最后一个 e l s e else else 语句,在屏幕上打印输入年龄有误!。(毕竟年龄是不能为负数滴😏,当然也可以再加个判断将年龄限制在百岁左右,不然输入几千岁几万岁不就妥妥的老妖怪了嘛😱😱😱)

3. 悬空的else

了解了以上的知识后,如果遇到一些特殊的选择语句,又会有什么变化嘞?
让我们看一下这段代码:【猜一下会在屏幕上打印什么?】

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
		printf("hehe!\n");
	else
		printf("haha\n");

	return 0;
}

如果老夫所料不错,施主的答案是 haha ,那么施主所想是否正确捏?
运行结果:
【C语言】选择语句(分支语句),c语言,开发语言
是不是有点小意外?为什么会这样呢?

C语言中, e l s e else else 与离它 最近的 i f if if 相匹配。
并且上面的代码写的不是很规范,那让我们将代码优化一下:

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
		{
			printf("hehe!\n");
		}
		else
		{
			printf("haha\n");
		}
	}
	return 0;
}

改成这样是不是就一目了然了,当我们优化以后可以看到在第一句判断时就已经不成立了,所以是不会进入选择语句内,直接到该语句的末尾。

【C语言】选择语句(分支语句),c语言,开发语言

总结: i f if if 语句可以单独使用,而 e l s e else else 必须和 i f if if 配对使用,并且 e l s e else else 是和它上面最近的未曾匹配的 i f if if 进行配对。

4. 嵌套的if语句

i f if if 语句是可以嵌套使用的,那么该怎样嵌套捏?

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

这种嵌套的 i f if if 语句运行流程是:

  先判断表达式1是否成立,如果 成立 ,则开始判断表达式2,表达式2成立则执行 语句1 ,表达式2不成立则执行 语句2
  如果表达式1 不成立 ,则开始判断表达式3,成立则执行 语句3 ,不成立则执行 语句4

5. 例题

练习一:

判断一个数是奇数还是偶数

#include <stdio.h>
int main()
{   
	int n;
	scanf("%d", &n);
	if (n % 2 == 1)
	{
		printf("%d是奇数!\n", n);
	}
	else
	{
		printf("%d是偶数!\n", n);
	}
	return 0;
}

练习二:

判断某一年是否为闰年
  闰年是指该年份能被 4 整除,且不能被 100 整除;或者能被 400 整除,那么该年份是闰年

#include <stdio.h>
int main()
{   
	int year = 0;
	scanf("%d", &year);
	if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
	{
		printf("%d是闰年\n",year);
	}
	else
	{
		printf("%d不是闰年\n", year);
	}
	return 0;
}

练习三:

判断一个数的值的范围

#include <stdio.h>
int main() 
{	
    int num = 0;
    printf("请输入一个整数:");
    scanf("%d", &num);
    if (num < 0) 
    {
        printf("输入的整数是负数。\n");
    }
    else if (num == 0) 
    {
        printf("输入的整数是 0。\n");
    }
    else if (num < 10) 
    {
        printf("输入的整数是小于 10 的整数。\n");
    }
    else if (num < 20) 
    {
        printf("输入的整数是大于等于 10 且小于 20 的整数。\n");
    }
    else 
    {
        printf("输入的整数是大于 20 的整数。\n");
    }
    return 0;
}

练习四:

比较两个数哪一个更大

#include <stdio.h>
int main() 
{   
    int a, b;
    printf("请输入两个数:");
    scanf("%d %d", &a, &b);
    if (a != b) 
    {
        if (a > b)
        {
            printf("%d > %d\n", a, b);
        }
        else
        {
            printf("%d < %d\n", a, b);
        }
    }
    else 
    {
        printf("%d = %d\n", a, b);
    }
    return 0;
}

三、switch语句

s w i t c h switch switch 也是一种分支结构,常常用于多分支的情况!若果 i f if if e l s e else else i f if if e l s e else else…过多时,可以选择用 s w i t c h switch switch 语句。

1. 语句格式

switch(表达式)
{
	case 常量表达式1: 语句1; break;
	case 常量表达式2: 语句2; break;
	······
	case 常量表达式n: 语句n; break;
	default: 语句 n+1;
}
  • s w i t c h switch switch 表达式的值是 c a s e case case 后面的常量表达式的可能取值。
  • s w i t c h switch switch 后面的表达式值的类型一般为 整型 或者 字符型
  • c a s e case case 子句后的常量表达式必须为简单的 整型 或者 字符型常量
  • 当执行完一个分支的执行语句后,如果没有遇到 b r e a k break break ,程序将无条件的继续执行后面的所有分支语句,直到遇到 b r e a k break break 后,则退出 所在的 s w i t c h switch switch 语句。
  • s w i t c h switch switch 语句也是可以 嵌套 使用的。

2. switch语句使用方法

由上面的第 4 4 4 点我们可以看到在没有遇到 b r e a k break break 之前,程序会无条件继续执行,直到遇到 b r e a k break break 才会结束,那么我们用代码来深刻体验一下:

#include <stdio.h>
int main() 
{
    int num = 2;

    switch (num) 
    {
    case 1:
        printf("num 的值是 1\n");
        printf("继续执行下面的 case 2 的代码\n");
    case 2:
        printf("num 的值是 2\n");
        printf("继续执行下面的 case 3 的代码\n");
    case 3:
        printf("num 的值是 3\n")printf("继续执行下面的 case 4的代码\n");
    case 4:
        printf("num 的值是 4\n");
        printf("继续执行下面的 case 5 的代码\n");
	case 5:
        printf("num 的值是 5\n");
        printf("继续执行下面的 case 6 的代码\n");
        break;
    case 6:
        printf("num 的值是 6\n");
    default:
        printf("未匹配到任何 case\n");
    }
    return 0;
}

运行结果:
【C语言】选择语句(分支语句),c语言,开发语言

可以看出,当 n u m = 2 num=2 num=2 时, s w i t c h switch switch 选择语句会从 c a s e case case 2 2 2 执行,但是在 c a s e case case 2 2 2 结束后并没有遇到 b r e a k break break,所以将继续执行接下来的语句,直到在 c a s e case case 5 5 5 结束时遇到 b r e a k break break,则跳出了所在的 s w i t c h switch switch 语句,而不再继续 c a s e case case 6 6 6 的语句。

3. break的妙用

在 C 语言中, s w i t c h switch switch 语句中的 b r e a k break break 作用是跳出 s w i t c h switch switch 语句,如果没有遇到 b r e a k break break 语句,程序会继续执行下一个 c a s e case case 标签后的语句。如果所有 c a s e case case 标签都没有匹配到 b r e a k break break ,程序会执行 d e f a u l t default default 标签后的语句。

所以加了 b r e a k break break s w i t c h switch switch 语句会更加严谨。

例如:

#include <stdio.h>
int 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;
}

运行结果:
【C语言】选择语句(分支语句),c语言,开发语言

上面这段代码就很好的应用了 b r e a k break break,当我们输入 1 1 1 ~ 7 7 7 之间的数时,会在屏幕打印所对应的星期,并且在打印完后直接跳出,不再继续执行下面的选择。

4. 去掉部分break的switch语句

  我们已经知道了没有遇到 b r e a k break break,将继续执行后面的语句,直到遇到 b r e a k break break,才跳出所在的 s w i t c h switch switch 语句。
  那么我们是不是也可以利用一下这个规定,来达到可以在一定程度上减少代码量:

#include <stdio.h>
int main()
{
	int day;
	scanf("%d", &day);
	switch (day)
	{
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		printf("工作日!\n");
		break;
	case 6:
	case 7:
		printf("假期!\n");
		break;
	}
	return 0;
}

就像上面这段代码一样,既然周一周五都是工作日,那么我们不论输入的是1~5当中的几,都会周五的下面的【工作日!】后,通过 b r e a k break break 跳出选择语句。
例如: 当我们输入2时,执行语句是空的,则继续往下执行,3和4也是空的,直到在 c a s e case case 5 中的 p r i n t f printf printf 语句打印:工作日!,执行完后遇到了 b r e a k break break ,跳出了选择语句。


注:
🔴🔴🔴default子句🔴🔴🔴

  如果表达的值与所有的 c a s e case case 标签的值都不匹配,也就是所有的语句都被跳过了,程序并不会被终止,也不会报错。
  但是,你不想忽略不匹配所有 c a s e case case 标签的表达式的值,该怎么办?
  当switch表达式的值与 c a s e case case 分支的条件都不满足时,程序将执行 d e f a u l t default default 子句。所以,每个switch语句中只能出现一条default子句,而且它可以出现在 s w i t c h switch switch 语句列表的任何位置,因为它只有在其他 c a s e case case 语句都不匹配时才会使用。

5. 嵌套的switch语句

#include <stdio.h>
int main()
{
    int a = 100;
    int b = 200;

    switch (a) 
    {
    case 100:
        printf("这是外部 switch 的一部分\n");
        switch (b) 
        {
            case 200:
            printf("这是内部 switch 的一部分\n");
        }
    }

    printf("a 的准确值是 %d\n", a);
    printf("b 的准确值是 %d\n", b);

    return 0;
}

运行结果:
【C语言】选择语句(分支语句),c语言,开发语言

如上面这段代码, s w i t c h switch switch 语句可以像 i f if if 语句一样也进行嵌套使用。
大家可以自己试一试其他的嵌套方式,由于嵌套的 s w i t c h switch switch 语句并不常用,小明就不过多的给大家介绍了。

6. 例题

练习一:

制作简易计算器

#include <stdio.h>
int main()
{   
    int first, second, result;
    char sign;
    scanf("%d%c%d", &first, &sign, &second);
    switch (sign)
    {
        case '+': result = first + second; 
            printf("%d", result); 
            break;
        case '-': result = first - second; 
            printf("%d", result);
            break;
        case '*': result = first * second; 
            printf("%d", result);
            break;
        case '/': result = first / second; 
            printf("%d", result);
            break;
        case '%': result = first % second; 
            printf("%d", result);
            break;
        default: printf("ERROR\n");
    }
    return 0;
}

练习二:

判断输入的字母是不是元音字母

#include <stdio.h>
int main()
{	
    char ch;
    scanf("%c", &ch);

    switch (ch)
    {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
        printf("是元音字母\n");
        break;
    default:
        printf("不是元音字母\n");
    }

    return 0;
}

练习三:

判断某同学分数等级
  90分以上为 A,80~89分为 B,70~79分为 C,60~69分为 D,60分以下为 不及格。

#include <stdio.h>
int main()
{
    int score = 0;
    scanf("%d",&score);
    switch (score / 10)
    {
    case 10:
        printf("满分的好同学\n");
        break;
    case 9:
        printf("A\n");
        break;
    case 8:
        printf("B\n");
        break;
    case 7:
        printf("C\n");
        break;
    case 6:
        printf("D\n");
        break;
    default:
        printf("不及格\n");
    }
    return 0;
}

完结

好啦,阅读到这里就已经看完了本期博客的全部内容了
【C语言】选择语句(分支语句),c语言,开发语言文章来源地址https://www.toymoban.com/news/detail-702017.html

到了这里,关于【C语言】选择语句(分支语句)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 万字C语言之分支语句和循环语句

    前言: 📕作者简介:热爱编程的小七,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年! 📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。 😇😇😇有兴趣的话关注博主一起学习,一起进步吧! C语句可分为以

    2024年02月09日
    浏览(48)
  • C语言:分支语句和循环语句(超详解)

    目录 ​编辑 什么是语句?  分支语句(选择结构) if语句: 应该注意的是: switch语句: 运用练习: 循环语句 while循环: for循环: break和continue在for循环中: for循环的变换使用: do...while()循环 do while循环中的break和continue: goto语句 以上就是个人学习见解和学习的解析,欢

    2024年02月12日
    浏览(56)
  • 深入浅出分支语句—【C语言】

    目录 前言:为什么要学习分支和循环语句呢? 1. 语句的分类 2. 分支语句(选择语句) 2.1 if-else语句 注意点:if-else语句后面不加{},默认只能跟一条语句 2.2  switch语句  注意点: 因为C语言是一门结构化的程序设计语言,具有三种结构:顺序结构、选择结构、循环结构,这三

    2024年02月02日
    浏览(86)
  • 『C语言入门』分支和循环语句

    在编程中,我们需要让程序 根据不同情况作出选择,并重复执行某些任务 。C语言的分支和循环结构为实现这些目标提供了强大的工具。本文将探索C语言中的分支(如 if 和 switch )以及循环(如 while 、 for 和 do...while )结构,帮助你理解如何更有效地控制程序的流程和逻辑。

    2024年02月11日
    浏览(55)
  • C语言第六弹---分支语句(下)

    ✨ 个人主页: 熬夜学编程的小林 💗 系列专栏: 【C语言详解】 【数据结构详解】 逻辑运算符提供逻辑判断功能,用于构建更复杂的表达式,主要有下面三个运算符。 • ! :逻辑取反运算符(改变单个表达式的真假)。 • :与运算符,就是并且的意思(两侧的表达式都为

    2024年01月25日
    浏览(34)
  • 初阶C语言-分支和循环语句(下)

    “花会沿途盛开,以后的路也是。” 今天我们一起来继续学完分支语句和循环语句。 3.4.1 do语句的用法 在前面,我们学过了用 while循环 和 for循环 在屏幕上打印1~10的数字,那么在 do...while()循环 中,如何实现这步操作呢? 接下来,让我们用一张图了解一下 do...while()循环 的

    2024年02月15日
    浏览(57)
  • 【C语言】深入了解分支和循环语句

    💓 博客主页:江池俊的博客 ⏩ 收录专栏:C语言初阶之路 🎉如果觉得博主的文章还不错的话,请点赞👍收藏🌟 三连支持一下博主💞 💫“每一天都是一个全新的机会,用积极的心态去迎接挑战吧!” 前言  一、什么是语句? 二、分支语句(选择结构) 2.1.if语句 2.1.1 悬

    2024年02月17日
    浏览(52)
  • C语言第五弹---分支语句(上)

    ✨ 个人主页: 熬夜学编程的小林 💗 系列专栏: 【C语言详解】 【数据结构详解】 C语言是结构化的程序设计语言,这里的结构指的是 顺序结构、选择结构、循环结构 ,C语言是能够实现这三种结构的,其实我们如果仔细分析,我们日常所见的事情都可以拆分为这三种结构或

    2024年01月22日
    浏览(38)
  • C语言——分支语句(if,switch)

    前言:这篇博客,主要想从 理解分支语句,语句的执行过程和书写 以及一些 注意事项 来谈谈 分支语句 🎬 个人简介:努力学习ing 📝 CSDN主页 愚润求学 🌄 每日鸡汤: 我走的很慢,但我从不后退 目录 一,if语句 注意事项 二,switch语句 我们如何理解分支语句是什么? 分

    2024年02月06日
    浏览(56)
  • C语言_分支和循环语句(2)

    C语言:结构化的程序设计语言 顺序结构、选择结构、循环结构 导引 过于分散 使用for循环打印1~10 循环体默认只能控制一条语句 想控制多条语句的话,要加大括号 示例 建议: 1.不可在 for 循环体内修改循环变量,防止 for 循环失去控制。 2.建议 for 语句的循环控制变量的取值

    2024年02月10日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包