100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > C语言 分支语句:if 语句和 switch语句

C语言 分支语句:if 语句和 switch语句

时间:2023-09-22 07:11:09

相关推荐

C语言 分支语句:if 语句和 switch语句

目录

if 语句

悬空else —— else跟距离它最近的 if 匹配

if 书写形式的对比

if…else、if…else if…else if 和 if...if...if 语句的区别

switch语句

C语言是结构化的程序化设计语言!

顺序结构 —— 从头做到尾,按顺序一步一步往下走

选择结构 —— 做的时候有选择 —— 分支语句

ifswitch

循环结构 —— 循环重复 —— 循环语句

whilefordo while

goto语句

什么是语句?

C语言中由一个分号;隔开的就是一条语句。

if 语句

C语言是如何表示真和假的呢?

非0就是真 比如 -1

0就是假

语法结构:

//单分支if(表达式) //如果表达式为真,语句被执行语句;

//双分支if(表达式) //如果表达式为真,执行语句1,否则执行语句2语句1;else语句2;

//多分支if(表达式1) //如果表达式1为真,执行语句1,如果表达式1不成立,判断表示2语句1;else if(表达式2) //如果表达式2成立,执行语句2,否则执行语句3语句2;else语句3

举例:

//单分支#include<stdio.h>int main(void){int age = 10;if (age >= 18)printf("成年\n"); //不输出return 0;}

//双分支#include<stdio.h>int main(void){int age = 10;if (age >= 18)printf("成年\n"); elseprintf("未成年\n"); //输出: 未成年return 0;}

if 和 else 后面如果没有{},则只控制它们后面的第一条语句

if 和 else 后面有{}括起来的多条语句,则会控制被{}的多条语句

//双分支#include<stdio.h>int main(void){int age = 10;//if 和 else 后面如果没有{},则只控制它们后面的第一条语句//if 和 else 后面有{}括起来的多条语句,则会控制被{}的多条语句if (age >= 18){printf("成年\n");printf("恭喜你,可以谈恋爱啦\n");}else{printf("未成年\n"); printf("不能谈恋爱\n");}return 0;}

输出:

悬空else —— else跟距离它最近的 if 匹配

看下面代码会输出什么?

建议养成自己良好的代码风格:

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

if 书写形式的对比

比较代码1和代码2意思是不是相同的?

//代码1if (condition) {return x;}return y;//代码1和代码2是不是一样?//代码1和代码2表达的意思是相同的,但是代码1风格不好//代码2if (condition){return x;}else{return y;}

代码3:如果 if (num == 5)漏掉一个 = 变成 if (num = 5),则相当于把 5 赋值给 num,代码3就会输出:哈哈

//代码3int num = 2;if (num == 5){printf("哈哈\n"); }// 因为不满足条件,代码3不输出

代码4:将两个整型并列进行比较的时候,把常量放在左边,这样就不会出现代码3那样的错误

//代码4int num = 2;if (5 == num)//将常量放在左边{printf("哈哈\n");}

总结:代码2和代码4更好,逻辑更加清晰,不容易出错。

if…else、if…else if…else if 和 if...if...if 语句的区别

if…else、if…else if…else if:只要有一个条件被满足,则只会执行与之对应的语句,然后跳出整个判断。

if...if...if:无论条件是否满足,接下来的条件都会被逐个判断。

练习:

1,输入一个数,判断它的奇偶

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

2,输出1-100之间的奇数

#include<stdio.h>int main(void){int num = 0;while (num++ < 100){if (num % 2 == 1){printf("%d\n", num);}}return 0;}

或者

#include<stdio.h>int main(void){int num = 0;for (num = 0; num <= 100; num++){if (num % 2 == 1){printf("%d\n", num);}}return 0;}

或者

#include<stdio.h>int main(void){int num = 1;for (num = 1; num <= 100; num += 2){printf("%d\n", num);}return 0;}

switch语句

switch语句也是一种分支语句。常常用于多分支的情况。

在switch语句中,我们没法直接实现分支,搭配 break 使用才能实现真正的分支。

编程好习惯:在每个switch语句中都放一条 default子句 是个好习惯,甚至可以在后面再加上一个break。

格式:

必须是整型,float不行,字符可以,因为字符用的是其对应的ASCII码值,也是整型

//switch语句格式switch (整型表达式) {语句项;}//必须是整型,float不行,字符可以,因为字符用的是其对应的ASCII码值//语句项是什么呢?//是一些case语句,如下:case 整型常量表达式: //必须是整型、常量值语句;

举例:

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(void){int day = 0;scanf("%d", &day);switch (day) // (day)的值是几,就从case几进去,{ //想在哪里出来,就在哪里加 break 使其跳出、停止case 1:printf("星期一\n"); break;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;即使是最后一个case, break可加可不加,也建议加上}return 0;}

case 后面要不要加 break,是看用户需求来决定的,不是语法规定的,比如:

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(void){int day = 0;scanf("%d", &day);switch (day) // (day)的值是几,就从case几进去,{ //想在哪里出来,就在哪里加 break;case 1:case 2:case 3:case 4:case 5:printf("工作日\n");break;case 6:case 7:printf("休息日\n");break;default: //可以给一个错误提示,default放前中后哪里都行,建议放最后printf("输入错误\n");break;}return 0;}

练习:下面程序输出什么?

#include<stdio.h>int main(void){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); //输出:m = 5, n = 3return 0;}

解析:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。