分支和循环语句
当谈到C语言中的分支和循环语句时,通常指的是条件语句和迭代语句。条件语句是根据条件的真假来决定程序流程的一种结构。迭代语句用于重复执行一段代码,直到满足特定条件为止。
条件语句
if语句
if语句根据给定的条件来执行不同的操作。其条件为真则执行该if语句中所包含的操作,为假则不执行。
语法结构
其基本语法如下:
if (condition) {
// 如果条件为真,则执行这里的代码
} else {
// 如果条件为假,则执行这里的代码
}
另外,还有一种扩展的条件语句是if-else if-else语句,用于多个条件的判断。其语法如下:
if (condition1) {
// 如果条件1为真,则执行这里的代码
} else if (condition2) {
// 如果条件2为真,则执行这里的代码
} else {
// 如果前面条件都为假,则执行这里的代码
}
if语句代码示例
下面用一些代码向大家展示一下if语句的作用
#include<stdio.h> int main() { int age = 0; scanf("%d", &age); if (age >= 18) { printf("可以玩王者荣耀了"); } else { printf("玩不了王者荣耀"); } return 0; }
上述代码的功能输入一个数字,如果大于等于18,那就会打印出可以玩王者荣耀了,其他情况则会打印玩不了玩着荣耀
当有很多种分支的话,我们可以用else if来增加分支选择。
#include<stdio.h> int main() { int age = 0; scanf("%d", &age); if (age < 18&&age>=0) { printf("好好学习,备战高考!"); } else if (age >= 18 && age < 20) { printf("为找工作学习技能"); } else if (age >= 20 && age< 23) { printf("要好好努力准备找工作了"); } else if (age >= 23 && age < 60) { printf("努力工作,过上幸福生活"); } else { printf("安享晚年"); } return 0; }
这样就会有多种分支供选择了,在这里提醒大家为了保险起见,每一个if或者else if、else后最好都跟一个花括号,用来保证代码正确,不用花括号则会出现一些不必要的麻烦,好奇的小伙伴们可以打开vs尝试一下。
不过这样的效率不是很高,接下来有一新的分支语句介绍给大家
switch语句
在C语言中,switch语句用于根据不同的条件执行不同的操作。它是一种更简洁和结构化的替代多个if语句的方式。
语法结构
switch语句的基本语法如下:
switch (expression) {
case constant1:
// 如果expression等于constant1,则执行这里的代码
break;
case constant2:
// 如果expression等于constant2,则执行这里的代码
break;
…
default:
// 如果expression不等于任何一个常量,则执行这里的代码
break;
}
其中,expression是需要进行比较的表达式,常常是一个整数或字符类型的值。
case后跟着一个常量,用来匹配expression的值。如果expression的值与某个case的常量相等,那么该case后的代码块将会被执行。如果匹配成功后的代码块执行完毕,程序会自动跳出switch语句。
如果expression的值没有与任何一个case的常量匹配,那么将会执行default后的代码块(即默认情况)。default是可选的,可用于处理没有明确匹配的情况。如果没有default,那么如果没有匹配成功的case,程序将跳过整个switch语句。
在每个case的代码块中,可以包含任意数量的语句。在每个case的末尾可以使用break语句来终止该case的执行并跳出switch语句,以防止执行后续case。
switch语句提供了一种清晰和有效的方式来根据某个表达式的值执行不同的操作。它常用于替代多个if-else if语句,使代码更加简洁和易读。
在这里需要提醒大家的是要把case理解为一个切入点,从符合条件的case中开始执行代码,如果忘记加break,那么代码则会走下一个case,直到遇到break跳出分支或者是到switch语句的结束
switch语句代码示例
接下来提出一个问题大家来一起解决一下
那么我们如果用if语句就会有多个else if的使用,效率不是很高,我们就用switch语句给大家展示一下
#include<stdio.h> int main() { int day = 0; scanf("%d", &day); switch (day) { case 1: printf("星期一"); break; case 2: printf("星期二"); break; case 3: printf("星期三"); break; case 4: printf("星期四"); break; case 5: printf("星期五"); break; case 6: printf("星期六"); break; case 7: printf("星期日"); break; default: printf("输入错误"); break; } return 0; }
以上呢,便是使用switch语句来编写这样的一个程序,如果我们不小心忘掉了某一个break会怎么样呢。
#include<stdio.h> int main() { int day = 0; scanf("%d", &day); switch (day) { case 1: printf("星期一"); break; case 2: printf("星期二"); break; case 3: printf("星期三"); break; case 4: printf("星期四"); break; case 5: printf("星期五"); case 6: printf("星期六"); case 7: printf("星期日"); break; default: printf("输入错误"); break; } return 0; }
在这次,我们删除了5和6的break;那么当我们运行程序输入5或者6会怎么样呢
没错,没有break的话,程序会继续走switch语句,直到碰到break或者走完switch语句,所以再次提醒大家以后使用switch的时候千万不要忘了break的使用。