C语言switch语句和if用法介绍

目录
  • switch语句
  • switch和if的区别
    • 1.switch语句结构示意图
    • 2.if语句结构示意图
  • switch的高级(灵活)运用
  • switch的嵌套实现
  • 循环及循环的两个关键字
    • 什么是循环结构
    • break关键字
    • continue关键字

switch语句

我们先了解switch是什么,翻译过来的中文意思是开关,在C语言中是指选择不同的开关即不同的分支来完成语句。接下来讲一下switch的结构和基本使用。

一般的switch语句的结构
switch(n){
case 1:
语句1;
break;
case 2:
语句2;
break;
case 3:
语句3;
break;
default:
语句4;
break;
}//当然我们一般也喜欢用{}来包括case后面得语句和break
即case 常量/表达式:{
语句;
语句;
break;
}

switch语句是从case进,break出,case后面只能跟常量或者常量表达式,n是一个变量,与if不同的是,if是判断表达值是真或假,而switch判断的是变量中储存的值具体是多少,然后根据这个值寻找对应的case,当所有的case均无法进入时会进入default这个最后的入口。switch的使用情况一般就是菜单使用和成绩表等的等级划分等。菜单使用相信大家能够理解,n为不同的值的时候我们会进行不同的操作,那么成绩表的等级划分是什么情况呢?

如果你要把九十分以上的人认作是优秀,八十分以上定义成良好
七十分以上为,中等六十以上不及格,六十以下不及格
你该怎么设计程序根据一个人的分数打印他的等级呢?
或许你会选择这样的一串代码
if(n>=90)
printf("优秀");
else if(n>=80)
printf("良好");
else if(n>=70)
printf("中等");
else if(n>=60)
printf("及格");
else
printf("不及格");
这个代码可以清晰的表示你的意思,这样分支代码会有点搓
而switch十分适合这种,这个时候肯定会有朋友们疑惑,
case后面只能跟一个具体的常量,不能跟一个范围,那么一个一个
的写 case 100
     case 99
     case 98
        .
        .
     case 0
但并不是这样实现的,一般就行等级规划的时候都是有一个共同的特点
我们既可以根据这个特点来设计switch
switch(n/10){
case 10:
case  9:
case  8:
case  7:
case  6:
default :
}//具体的代码实现就写到这,主要是分享思路

switch和if的区别

前面只是浅谈了switch,接下来看两张图片帮助你深入了解switch,并认清switch和if的区别

1.switch语句结构示意图

第一次画图,可能画的有点难看,希望见谅

2.if语句结构示意图

看完这两张图后,我们来深入了解switch

  • 1.与其说switch是分支结构,不如说它是顺序结构。
  • 虽然说switch是从不同的case进入整个switch内部的,但是我们要知道,switch从case进入以后只有两种到达出口的方式,遇到break和switch语句全部结束,根据结构图也可以知道其实switch的不同语句块之间其实是从上往下排列的,与顺序结构是类似的。
  • 2.if和switch结构上的区别
  • 根据两张图我们可以清晰的发现,switch的结构类似顺序结构,而if是互相并列的分支结构,if最多只会执行其中第一个判断为真的语句块,而switch在没有break传送门情况下会一直运行进入入口后的语句块直到找到了出口。
  • 3.if和switch共同的分支结构
  • switch既然属于分支语句,那么就一定存在分支的地方。switch的case语句是分支的,即入口是分支的,这一点和if是一致的,他们的入口都是分支的,并且都是在程序运行时是从上往下逐步判断是否可以这个入口进入语句块内部。

switch的高级(灵活)运用

了解了switch的具体结构及其与if的区别,接下来讲一下如何灵活的运用switch,或者在试题中如何

分析答案

高级的switch使用,其实就两个要点,灵活利用break和合理对case进行适当的排序
比如刚刚的成绩划分程序,100分和九十多分是一样的,我们可以进行这样的简化
case 10:
case 9:
printf("优秀");
break;
其实这种情况非常的简单,大家实际遇到或者运用的时候或许会复杂很多
但是只要找到程序的特点,并且记住switch的结构以及牢记到达出口的条件,
大家就可以很轻松的分析程序,并且在慢慢的积累中熟练的掌握。

switch的嵌套实现

switch同样也可以嵌套,看着或许复杂,但在培养了一定的程序的思维之后并不难理解,接下来用这个代码来帮助大家简单的理解switch的嵌套使用。

这段代码可用于判断科举时进士的前三甲
#include<stdio.h>
int main(){
int n;     //存放名次,并用于判断
printf("请告诉我你的排名:");
scanf("%d",&n);
switch (n / 30) {
	case 0:     //n/30等于0,即前三十名,进入下一层switch
		switch (n) {
		case 1:
			printf("状元"); //第一名状元
			break;
		case 2:
			printf("榜眼");  //第二名榜眼
			break;
		case 3:
			printf("探花");  //第三名探花
			break;
		default:
			printf("进士及第"); //其余是进士及第
		}
		break;
	case 1:      //n/30等于1为30-59名
		switch (n) {      //进入下一层switch,30进士及第,其余同进士及第
		case 30:
			printf("进士及第");
			break;
		default:
			printf("同进士及第");
		}
		break;
	case 2://60-89名,进入下一层switch
		switch (n) {   //60名为最后一位进士,其余全部落榜
		case 60:
			printf("同进士及第");
			break;
		default:
			printf("很遗憾你落榜了");
		}
		break;
	default:
		printf("很遗憾你落榜了");
	}
return 0;
}
default因为是最后的入口,所以可以省略break
但在还未灵活使用break和case时建议不要省略break

循环及循环的两个关键字

什么是循环结构

循环简单来说就是,重复反复的进行一些同样的操作,这个时候为了节省代码量,提高代码的美观性时,我们会用循环语句来包装那些重复的语句,而循环语句中不断执行的语句被称为循环体。

下面大家可以根据这个简单的图来理解循环

这只是其中的一种循环,为了达到美好的生活,我们不停的学习,敲代码,买彩票,直到拿到工作或者彩票中大奖,希望大家看完之后能简单理解循环。

break关键字

在switch中,break是一个传送门,直接带我们走到出口,在循环中也是同样的,break会打破最近的一层循环,作为一个传送门带我们达到美好新生活而不需要判断是否中奖或者是否有offer

continue关键字

continue在循环中的作用是结束这次循环开始下一次循环,我更喜欢称它为闪现,那什么叫结束本次循环呢,比如我们在学习后加上一个continue,我们就不需要再敲代码和买彩票了,但和break不同,它还需要进行下一次循环,走出循环的条件只有两个就是不符合判定循环条件和break打破循环,当遇到continue时程序会直接结束本次循环,然后到达循环判定条件处来进行判定,以判断是否要进行下一次循环,并不能直接送你到达出口。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

以上所述是小编给大家介绍的C语言switch语句和if用法介绍,希望对大家有所帮助。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • C语言入门篇--学习选择,if,switch语句以及代码块

    目录 1.什么是语句 2.选择语句(分支语句) 2.1if语句&注意事项 2.1.1语法结构 2.1.2悬空else 2.2switch语句&注意事项 2.2.1语法结构 2.2.2switch语句中的break 2.2.3switch语句中的default语句 2.2.4switch语句的嵌套 3.代码块 1.什么是语句 语句:C语言中由一个 ; 隔开的就是一条语句. 例如: int a = 10; printf("haha\n"); 10; 'A'; ; //空语句

  • C语言switch语句详解

    目录 switch 分支结构 快速入门 代码演示 switch 细节讨论 switch 和 if 的比较 案例: 总结 switch 分支结构 快速入门 案例: 请编写一个程序,该程序可以接收一个字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 - 根据用户的输入显 示相依的信息.要求使用 switch 语句完成 代码演示 案例: 请编写一个程序,该程序可以接收一个字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期 二 - 根据用户的输入显 示相依的

  • C语言switch 语句的用法详解

    C语言虽然没有限制 if else 能够处理的分支数量,但当分支过多时,用 if else 处理会不太方便,而且容易出现 if else 配对出错的情况.例如,输入一个整数,输出该整数对应的星期几的英文表示: #include <stdio.h> int main(){ int a; printf("Input integer number:"); scanf("%d",&a); if(a==1){ printf("Monday\n&q

  • 解析c语言switch中break语句的具体作用

    问题:break在for循环.while循环等循环流程控制中起的作用是停止执行break后面的语句,跳出本次循环,并跳出该循环控制体:在switch条件选择中,没有了循环控制,break又起什么作用呢? 解决办法:1. switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇到break语句就退出switch语句,程序流程转向开关语句的下

  • C语言流程控制之switch语句详解

    switch语句结构 switch(表达式) { case 判断值1; 语句组1: break; case 判断值2: 语句组2: break; case 判断值3: 语句组3: break; -- case 判断值n: 语句组n: break; default: 语句组n+1: break; } 表达式是选择条件,可以是单个变量也可以是组合的表达式,其最终的结果必须是一整数值,{}内的所有内容是switch语句的主体,内含多个case分支,判断值必须是一常量,case分支根据判断值标识条件选择

  • 详解C语言中条件判断语句if和switch的用法

    if 语句 用 if 语句可以构成分支结构,它根据给的条件进行判定,以决定执行哪个分支程序段. C 语言的 if 语句有三种基本形式 第一种形式: if(条件表达式) { 语句1: } if(条件表达式) { 语句1: } 这种形式运行顺序为:当条件表达式为真,执行语句1,否则,直接跳过语句1,执行后面的语句. 例子1: BOOL result = YES: if(result) { printf("result is true\n"); } BOOL result = YES: if

  • C语言switch语句和if用法介绍

    目录 switch语句 switch和if的区别 1.switch语句结构示意图 2.if语句结构示意图 switch的高级(灵活)运用 switch的嵌套实现 循环及循环的两个关键字 什么是循环结构 break关键字 continue关键字 switch语句 我们先了解switch是什么,翻译过来的中文意思是开关,在C语言中是指选择不同的开关即不同的分支来完成语句.接下来讲一下switch的结构和基本使用. 一般的switch语句的结构 switch(n){ case 1: 语句1: brea

  • C语言switch使用之诡异用法详解

    关于switch的用法这里不再做什么总结了,其实这个是一个便捷的快速跳转条件切换器.而关于这个功能最常用的技术讨论点在于case后面的break以及default.这里不讨论这些,直接看下面的代码: #include"stdio.h" int main(void) { int num = 0; switch(num) { printf("functionrun!\n"); } return 0; } 上面的代码中用到了一个switch,但是代码块中没有任何case以

  • Go语言中循环Loop的用法介绍

    Go语言和其他语言不一样,它只有一种循环方式,就是for语句 可以参考如下公式: for initialisation; condition; post{ //Do Something } 执行顺序 a.执行一次initialisation,初始化 b.判断condition c.条件为true,执行{}内的语句 d.语句执行之后执行post 使用方式举例: 1.基本使用类似其他语言的for func ForTest1(){ for i:=1;i<=10;i++{ fmt.Printf("

  • Go语言里切片slice的用法介绍

    1.切片是基于数组做的一层封装,灵活能够自动扩容. 2.切片的初始化方法 ①直接创建 ②基于已有的数组或切片 ③使用make来创建一个切片 第一个5是切片的大小 第二个5是切片的容量 3.基本操作 ①获取元素 ②增加元素append 当达到底层的最大容量,切片会进行扩容,扩容的策略是翻倍扩容. 下图说明扩容之后,地址也变化了. 4.切片的修改 和数组(值传递)不一样,切片相当于是一个引用传递. 5.如果计算切片的容量? 例如:b切片的长度和容量是多少? 答案: 长度为2 容量为7 详细可以参考下

  • golang switch语句的灵活写法介绍

    switch是很容易理解的,先来个代码,运行起来 看看你的操作系统是什么吧 package main import ( "fmt" "runtime" ) func main() { fmt.Print("Go runs on ") switch os := runtime.GOOS; os { case "darwin": fmt.Println("OS X.") case "linux&quo

  • C语言中switch语句基本用法实例

    目录 switch语句: switch语句的基本格式 C语言switch语句用法 补充:用switch来给成绩等级 总结 switch语句: 实际生活中,需要做出很多选择,大家都知道做选择可以使用if语句,但是如果选择太多,if语句使用起来就会很繁琐,这个时候就需要一个能将代码简化的语句,也就是我们今天的主角switch语句. switch语句是一个多分支选择语句,并且可以支持嵌套. switch语句的基本格式 switch(表达式){case 常量1:语句1case 常量2:语句2defaul

  • Go语言学习之Switch语句的使用

    目录 基本语法 fallthrough使用方法 多条件匹配 判断接口(interface)类型 空接口 获取实际类型 基本语法 在讲述if-else时已经提到,如果有多个判断条件,Go语言中提供了Switch-Case的方式.如果switch后面不带条件相当于switch true // Convert hexadecimal character to an int value switch { case '0' <= c && c <= '9': return c - '0'

  • Go语言每天必学之switch语句

    Go 语言 switch 语句 switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止.. switch 语句执行的过程从上至下,直到找到匹配项,匹配项后面也不需要再加break 语法 Go 编程语言中 switch 语句的语法如下: switch var1 { case val1: ... case val2: ... default: ... } 变量 var1 可以是任何类型,而 val1 和 val2 则可以是同类型的任意值.类型

随机推荐