前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C语言】判断语句以及分支语句《详细讲解》

【C语言】判断语句以及分支语句《详细讲解》

作者头像
謓泽
发布2022-12-12 14:38:00
7050
发布2022-12-12 14:38:00
举报
文章被收录于专栏:【C】系列

 🏹 写在前面


  • 📝 个人主页:泽奀的博客_CSDN博客
  • 🆔 本文由 泽奀 原创,CSDN首发 ❗ ❗ ❗
  • 🏆 嵌入式领域新星创作者  作者周榜: 38  总排名: 3994 👑 
  • 🎉 点赞 & 评论 & 收藏 == 养成习惯😜
  • 📣 系列专栏:【C】系列_泽奀的博客-CSDN博客
  • 💬 总结:看完之后,希望能对你有所帮助,不足请指正!共同学习交流 🖊
  • ✉️ 我们并非登上我们所选择的舞台,演出并非我们所选择的剧本 ♐ 

目录

 🏹 写在前面

 🪁 判断语句

🍬 if语句形式

🔥 if语句的使用 

🍬 双层if语句使用

🍬 if语句的嵌套

🍬 if...else语句形式

🍬else if语句形式

🔥 else if语句的使用 

🪁 分支语句 

🍬 swtich 语句

🍬 switch 语句的基本形式

🔥 break 介绍

🍬 'case'语句的说明 

🔥 说明:注意! 

🔥 break 介绍

🍬 'case'语句的说明 

🔥 说明:注意! 

🍬 break 介绍

🍬 'case'语句的说明

🔥 说明:注意! 



 🪁 判断语句

判断语句顾名思义:是由我们打代码的人想让代码执行哪段语句,这就叫做是判断语句! 以程序员的角度上来说就是:判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何 非零 和 非空 的值假定为 true,把 零 或 null 假定为 false。 按照日常生活来举个例子:信号灯显示为绿色的时候,车辆是可以通过的;当信号灯转为红色的时候,车辆就必须要停止行驶。可见,信号灯给出了信号,人们通过不同的信号从而进行判断,然后更具自己的判断结果执行相对应的操作! 在C语言判断语句当中:表达式的值为假false,那么就不执行里面语句的内容。当表达式的语句结果为真ture则执行表达式的值的内容。 下面是大多数编程语言中典型的判断结构的一般形式:


🍬 if语句形式

简介if语句通过对表达式的值进行判断,根据判断的结果决定是不是要进行相对应的操作。格式如下: if(表达式) 语句 当代码中表达式的值,如果表达式的值为真"turn",则执行后面的语句;如果表达式的值为假,则不执行后面的语句。

语句执行流程图:如下所示


🔥 if语句的使用 

如下示例

代码语言:javascript
复制
#include <stdio.h>
 
int main (void)
{
   // 局部变量定义 
   int a = 10;
 
   // 使用 if 语句 
   if( a < 20 )
   {
       // 如果条件为真,则输出下面的语句
       printf("a 小于 20 \n" );
   }
   printf("a 的值是 %d\n", a);
 
   return 0;
}

运行结果


🍬 双层if语句使用

如下示例

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
	int i;
	printf("请输入数字(1)/(0):");
	scanf("%d", &i);
	if (i == 1)
	{
		printf("好好学习!早日成为C语言大佬!\n");
	}
	if (i == 0)
	{
		printf("学习太累我还是去板砖吧!\n");
	}
	return 0;
}

运行结果:(两次)

当然除了双层if语句的使用其实还有多层if语句得使用,这里就不再多说,实践一下。


🍬 if语句的嵌套

if语句中又包含一个或者多个if语句的时候被称之为是if语句嵌套,一般形式如下:

  • if(表达式)
  •     if(表达式2)    语句块1
  • else
  •     if(表达式3)    语句块2
  •     else 语句块4

在使用if语句的嵌套形式的时候,可以对条件进行细化,然后进行所相对应的操作。  如下代码所示👇

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(void)
{
	int a, b;
	printf("请输入两个数字:");
	scanf("%d %d", &a, &b);
	if (a != b)
	{ 
		if (a > b)
		{
			printf("a>b\n");
		}		
		else
		{
			printf("a<b\n");
		}
	}
	else
	{
		printf("a=b\n");
	}
	return 0;
}

编译运行结果: 两个数字相等 a = b 一个数字大于另一个数字 a>b 一个数字小于另一个数字 a<b 

注意:在使用 if 语句嵌套的时候,应该注意 if 与 else 的匹配情况。else 总是与其上面最近的未配对 if 进行匹配。 


🍬 if...else语句形式

简介:除了可以指定在条件为真时候执行某些语句外,还可以执行另外一段代码。在C语言中是利用 else语句完成得,其一般形式如下:

  • if(表达式)
  •   语句块1;
  • else
  •   语句块2;

其语句的执行流程图如下所示: 


🍬else if语句形式

简介:利用 if else 关键字的组合可以实现 else if 语句,这是对一系列互斥的条件进行检验,其一般形式如下:

  • if(表达式1) 语句1   
  •   else if(表达式2) 语句2   
  •   else if(表达式3) 语句3   
  • ......             
  •   else if(表达式m) 语句m     
  • else 语句 n    

其语句的执行流程图 如下所示:


🔥 else if语句的使用 

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>

int main(void) 
{
	printf("请输入本次开学分数成绩:");
	int i; 
	scanf("%d",&i);
	{	
		if(i>90)/* 判断真假 */
		{
			printf("A!优异\n");
		}
		else if(i>=80 && i<90) /* &符号为and 中文"和"的意思 */
		{ 
			printf("B!不错\n");
		}
		else if(i>=60 && i<80)
		{
			printf("C!一般\n");
		}
		else if(i<60)
		{
			printf("D!加油\n");
		}
		else
		{
			printf("不及格\n"); 
		} 	
	}
	return 0;/* 程序结束 */
}

🪁 分支语句 

🍬 swtich 语句

[if]语句只有两个分支可以可供选择,而在实际问题中常需要用到多分支的选择。当然使用嵌套[if]语句也可以实现多分支的选择,但是如果分支很多的话,就会使得嵌套的[if]语句层数较多,程序代码并不是具有很高的可读性。而且,分支较多的话还会出现配对错误的情况,可读性不好。所以,这个时候C语言就提供了另外一种分支语句。C语言可以使用 [switch] 语句直接处理多分支选择的情况,将我们程序代码的可读性提高!


🍬 switch 语句的基本形式

[switch]语句是多分支选择语句,在我们程序代码中,如果我们觉得用的分支语句较多的时候。这个时候我们就可以用到[switch]语句来代替 [if - else]分支语句。 例如:如果只需要检验某一个整形变量的可能取值,那么这个时候可以用更简便的[switch]语句。[switch]语句的一般形式如下:

代码语言:javascript
复制
switch(表达式)
{ 
    case 常量表达式 1:
        语句 1;
    case 常量表达式 2: 
        语句 2;
         … 
    case 常量表达式 n:    
        语句 n; 
    default : 
        默认情况语句块;
}

计算表达式当中的值,并且逐个与常量表达式进行比较。当表达式的值与某个常量表达式相等的时候,即执行其后的语句,然后不再进行判断。继续执行后面所有的[case]语句,如表达式的值没有一个和[case]当中的常量表达式相等的时候,则执行[default]默认情况语句块

 例如:程序如下:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(void)
​​​​​​​{
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    switch(a)
    {
        case 1: printf("Monday\n");
        case 2: printf("Tuesday\n");
        case 3: printf("Wednesday\n");
        case 4: printf("Thursday\n");
        case 5: printf("Friday\n");
        case 6: printf("Saturday\n");
        case 7: printf("Sunday\n");
        default:printf("error\n");
    }
    return 0;
}

假设编译运行结果: Input integer number:4 Thursday Friday Saturday Sunday error 

输入整形数字4,发现和第④个分支匹配成功,于是就执行第四个分支以及后面的所有分支。这显然不是我们想要的结果,我们希望只执行第四个分支,而跳过后面的其他分支。为了达到这个目标,必须要在每个分支最后添加 break;语句


🔥 break 介绍

是C语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。

使用上面修改用[break]的代码

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    switch(a)
    {
        case 1: printf("Monday\n"); break;
        case 2: printf("Tuesday\n"); break;
        case 3: printf("Wednesday\n"); break;
        case 4: printf("Thursday\n"); break;
        case 5: printf("Friday\n"); break;
        case 6: printf("Saturday\n"); break;
        case 7: printf("Sunday\n"); break;
        default:printf("error\n"); break;
    }
    return 0;
}

假设编译运行结果: Input integer number:4 Thursday

🍬 'case'语句的说明 

代码语言:javascript
复制
case 10: printf("..."); break;  //正确
case 8+9: printf("..."); break;  //正确
case 'A': printf("..."); break;  //正确,字符和整数可以相互转换
case 'A'+19: printf("..."); break;  //正确,字符和整数可以相互转换
case 9.5: printf("..."); break;  //错误,不能为小数
case a: printf("..."); break;    //错误,不能包含变量
case a+10: printf("..."); break;  //错误,不能包含变量

🔥 说明:注意! 

[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算 在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的 在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记


🔥​​​​​​​ break 介绍

是C语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。 使用上面修改用[break]的代码

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    switch(a)
    {
        case 1: printf("Monday\n"); break;
        case 2: printf("Tuesday\n"); break;
        case 3: printf("Wednesday\n"); break;
        case 4: printf("Thursday\n"); break;
        case 5: printf("Friday\n"); break;
        case 6: printf("Saturday\n"); break;
        case 7: printf("Sunday\n"); break;
        default:printf("error\n"); break;
    }
    return 0;
}

假设编译运行结果: Input integer number:4 Thursday


🍬 'case'语句的说明 

代码语言:javascript
复制
case 10: printf("..."); break;  //正确
case 8+9: printf("..."); break;  //正确
case 'A': printf("..."); break;  //正确,字符和整数可以相互转换
case 'A'+19: printf("..."); break;  //正确,字符和整数可以相互转换
case 9.5: printf("..."); break;  //错误,不能为小数
case a: printf("..."); break;    //错误,不能包含变量
case a+10: printf("..."); break;  //错误,不能包含变量

🔥 说明:注意! 

[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算 在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的 在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记


🍬 break 介绍

是C语言中的一个关键字,专门用于跳出 [switch] 语句。所谓"跳出",是指一旦遇到[break],就不再执行 [switch] 中的任何语句,包括当前分支中的语句和其他分支中的语句;也就是说,整个[switch] 执行结束了,接着会执行整个 [switch] 后面的代码。 使用上面修改用[break]的代码

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int a;
    printf("Input integer number:");
    scanf("%d",&a);
    switch(a)
    {
        case 1: printf("Monday\n"); break;
        case 2: printf("Tuesday\n"); break;
        case 3: printf("Wednesday\n"); break;
        case 4: printf("Thursday\n"); break;
        case 5: printf("Friday\n"); break;
        case 6: printf("Saturday\n"); break;
        case 7: printf("Sunday\n"); break;
        default:printf("error\n"); break;
    }
    return 0;
}

假设编译运行结果: Input integer number:4 Thursday


🍬 'case'语句的说明

代码语言:javascript
复制
case 10: printf("..."); break;  //正确
case 8+9: printf("..."); break;  //正确
case 'A': printf("..."); break;  //正确,字符和整数可以相互转换
case 'A'+19: printf("..."); break;  //正确,字符和整数可以相互转换
case 9.5: printf("..."); break;  //错误,不能为小数
case a: printf("..."); break;    //错误,不能包含变量
case a+10: printf("..."); break;  //错误,不能包含变量

🔥 说明:注意! 

[switch] 语句检验条件必须是整形表达式,这意味其中也可以包含运算符和函数调用,而[case] 语句检验的值必须是整形常量,即常量表达式或者常量运算 在使用 [switch] 语句时,如果没有一个[case]语句后面的值匹配[switch]的条件,就执行[default]语句后面的代码。其中,任意两个 [case] 语句都不能有相同的常量值;每个[swtich]语句结构都只有一个[default]语句,[default]语句是可以省略的 在 [case] 语句表示条件后有一个冒号":",在编写程序的时候不要忘记。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •  🪁 判断语句
    • 🍬 if语句形式
      • 🔥 if语句的使用 
    • 🍬 双层if语句使用
      • 🍬 if语句的嵌套
        • 🍬 if...else语句形式
          • 🍬else if语句形式
            • 🔥 else if语句的使用 
        • 🪁 分支语句 
          • 🍬 swtich 语句
            • 🍬 switch 语句的基本形式
              • 🔥 break 介绍
            • 🍬 'case'语句的说明 
              • 🔥 说明:注意! 
              • 🔥​​​​​​​ break 介绍
            • 🍬 'case'语句的说明 
              • 🔥 说明:注意! 
            • 🍬 break 介绍
              • 🍬 'case'语句的说明
                • 🔥 说明:注意! 
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档