做网站公司介绍ppt,网络知识培训,创业服务网网站建设方案项目书,章丘公司做网站前言#xff1a; C语言是用来解决问题的#xff0c;除了必要的数据输入与输出#xff08;见前文#xff09;#xff0c;还要有逻辑结构。其中基本可以归为三类#xff1a;顺序结构、选择结构、循环结构。今天#xff0c;杰哥提笔写的是关于选择结构#xff08;又叫“分… 前言 C语言是用来解决问题的除了必要的数据输入与输出见前文还要有逻辑结构。其中基本可以归为三类顺序结构、选择结构、循环结构。今天杰哥提笔写的是关于选择结构又叫“分支结构”的笔记。在本博文中将有对 if 、else、switch使用场景的举例还有 关键字 case 、break的使用。 一、if 、 else 引导的分支结构
1、单分支 场景示例公司要么录用你要么没有消息。要么执行要么不执行 #define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main()
{int score 0;scanf(%d,score);if(score 90){printf(录用\n);}return 0;
} 2、双分支 场景示例1 公司给大家都发奖金要么多发要么少发。从两个执行的操作中选择一个执行 #define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main()
{int score 0;scanf(%d,score);if(score 90){printf(多发奖金\n);}else{printf(少发奖金\n);}return 0;
} 场景示例2 成年与未成年 tip一条执行内容时可以不用花括号多条执行内容时看情景判断是否用花括号但从代码阅读的体验感来说一般来说我们加上花括号比较好。 #define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main()
{int age 0;scanf(%d,age);if(age 18){printf(成年\n);printf(可以自己办银行卡\n);}else{printf(未成年\n);}return 0;
}
3、多分支 场景示例1 成绩评级 ---- 60以下不及格、60~80等级C、80~90等级B、90~100等级A。 #define _CRT_SECURE_NO_WARNINGS 1#include stdio.h
int main()
{int score 0;scanf(%d,score);if(score 60){printf(不及格\n);}else //此时前提变为score 60{if(score 80){printf(C\n);}else //此时前提变为score 80{if(score 90){printf(B\n);}else //此时前提变为score 90{printf(A\n);}}}return 0;
} 但是这样看着观感不好这里我们可以写if - else 多重嵌套的省略版本。 #define _CRT_SECURE_NO_WARNINGS 1#include stdio.h
int main()
{int score 0;scanf(%d,score);if(score 60)printf(不及格\n);else if(score 80)printf(C\n);else if(score 90)printf(B\n);else printf(A\n);return 0;
}
如何理解if - else 嵌套中if和else的关系呢解答如下 场景示例2 年龄段的判断 tip:以下执行内容为一条语句可以省略花括号。 #define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int 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);}return 0;
}
二、switch 引导的分支结构 关键字case --- 事件用于各情况的罗列break --- 跳出switch 分支default --- 提供一种处理意外情况的机制确保在没有匹配的case情况下程序仍有相应的执行逻辑。 switch --- 作用使多分支结构的可读性加强。注意switch(input) --- 其中的input 只能为整型变量不能是浮点型等。注意case后的情况只能是“整型常量表达式”如1、32 场景示例1---星期一 ······ 7---星期日 法一if - else 嵌套 ---- 实现多分支 #define _CRT_SECURE_NO_WARNINGS 1
#includestdio.h
int main()
{int day 0;scanf(%d, day);if (1 day)printf(星期一);else if (2 day)printf(星期二);else if (3 day)printf(星期三);else if (4 day)printf(星期四);else if (5 day)printf(星期五);else if (6 day)printf(星期六);else if (7 day)printf(星期日);elseprintf(输入错误\n);return 0;
} 法二switch --- 实现多分支 可读性是不是比法一好呢?
#define _CRT_SECURE_NO_WARNINGS 1
#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;default:printf(输入错误\n);break;}return 0;
} 另外switch还 可以这样用 #define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main()
{int day 0;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;default:printf(输入错误\n);break;}return 0;
} 三、使用switch过程中容易发生的问题
注意不要漏掉break 漏掉会怎么样呢示例如下 #define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main()
{int day 0;scanf(%d, day);switch (day){case 1:printf(星期一\n);break;case 2:printf(星期二\n);//此处漏掉breakcase 3:printf(星期三\n);break;case 4:printf(星期四\n);break;case 5:printf(星期五\n);break;case 6:printf(星期六\n);break;case 7:printf(星期天\n);break;default:printf(输入错误\n);break;}return 0;
}
输入
输入 2
输出结果
星期二
星期三
分析输入2后case 2作为入口开始进入执行然而刹不住“车”直到遇到break才停止执行。 接着看看以下这个会输出什么答案见下节 #define _CRT_SECURE_NO_WARNINGS 1
#include stdio.h
int main()
{int n 1;int m 2;switch (n){case 1:m;case 2:n;case 3:switch (n)//switch可以嵌套使用{case 1:n;case 2:m; n;break;}case 4:m;break;default:break;}printf(m %d,n %d\n, m, n);return 0;
}