从头学习C语言之switch语句和分支嵌套

Lark ·
更新时间:2024-11-13
· 1798 次阅读

目录

switch 语句:

注意事项:

分支结构的嵌套:

注意事项:

语句形式:

流程图:

示例:

总结

switch 语句: 一个 switch 语句允许测试一个变量等于多个值时的情况。每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。 注意事项:

在case每一行的语句或程序块后面要加上break;(否则程序将会把所有程序块从前到后运行一遍。

default是可选的,如果上面的case中没有符合的才会选择default(属于备选情况),但是如果不加default则switch语句则不会做出任何响应。

语句形式:

…//其他语句
switch(表达式)
{
case 常量表达式1:语句或程序块1
case 常量表达式2:语句或程序块2

case 常量表达式n:语句或程序块n
default:语句或程序块n+1
}
…//其他语句

流程图:

示例:根据评级查分数区间:

#include<stdio.h> int main() { char grade; printf("请输入你的成绩:"); scanf("%c",&grade); switch (grade) { case'A':printf("你的成绩大于九十。\n");break; case'B':printf("你的成绩在八十分到九十分之间。\n");break; case'C':printf("你的成绩在七十分到八十分之间。\n");break; case'D':printf("你的成绩在六十分到七十分之间。\n");break; case'E':printf("你的成绩在六十分以下。\n");break; default:printf("请输入正确的评级。\n"); } return 0; } 分支结构的嵌套: 套娃,一个if语句套一个if语句或者一个else语句套一个if语句。 注意事项:

else总是与其最近的if匹配:无论是switch或if语句,一定要保持写花括号的习惯,否则容易出bug。

在if嵌套时,要加入getchar()来屏蔽回车键,防止在判断下一个表达式时,将回车键算作一个常量。

用if判断单个字符时要加单引号,比如例三。

语句形式:

…//其他语句
if(表达式)
{
if(表达式){
…}
else{

}
}
else{

}
…//其他语句

上方语句为简写形式,讲花括号的前者放到if后面也可以。

流程图:

示例:

例一:判断两个数的大小

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

例二:约小花出门玩:

#include<stdio.h> int main() { char israin,isfree; printf("是否有空?(Y/N)\n"); scanf("%c",&isfree); if(isfree=='Y') { printf("这就很好喽!\n"); getchar();//这里是用getchar()来频屏蔽回车键 printf("是否下雨?(Y/N)\n"); scanf("%c",&israin); if(israin=='Y') { printf("记得带伞哦!!!\n"); } else { printf("那你快出来吧!!!\n"); } } else { printf("那算了!\n"); } return 0; }

例三:小花做我女朋友!!

#include<stdio.h> int main() { char a,b; printf("小花,你有男朋友吗?(Y/N)\n"); scanf("%c",&a); if(a=='Y') { printf("那你们在一起吧!\n"); } else { getchar(); printf("做我女朋友好不好?(Y/N)\n"); scanf("%c",&b); if(b=='Y') { printf("oh Yeah!\n"); } else { printf("啊这!!!\n"); } } return 0; } 总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注软件开发网的更多内容!



switch C语言 嵌套

需要 登录 后方可回复, 如果你还没有账号请 注册新账号