分支结构_switch分支
在程序设计中,分支结构是一种非常基本的程序控制结构,它允许程序根据条件的不同选择不同的执行路径。C语言中有多种分支结构,其中之一便是使用switch分支结构。
switch语句是一种多分支选择结构,它允许根据表达式的值,选择不同的执行路径。switch语句的基本语法如下:
switch (expression) { case value1: // 执行语句1 break; case value2: // 执行语句2 break;... case valueN: // 执行语句N break; default: // 执行默认语句}
在这个语法中,expression是一个表达式,它的值将会与每个case后面的常量进行比较。如果expression的值等于某个case后面的常量,那么程序将会执行该case后面的语句。如果expression的值不等于任何一个case后面的常量,那么程序将会执行default后面的语句,如果没有default,那么程序将直接跳过switch语句。
需要注意的是,在每个case后面必须要有一个break语句,它的作用是跳出switch语句。如果没有break语句,程序将会继续执行下一个case后面的语句,直到遇到break语句或者switch语句结束。
下面是一个使用switch语句的示例代码,它根据用户输入的数字,输出对应的英文单词:
#include <stdio.h>int main(){ int num; printf("请输入一个数字(1-7):"); scanf("%d", &num); switch (num) { case 1: printf("Monday\n"); break; case 2: printf("Tuesday\n"); break; case 3: printf("Wednesday\n"); break; case 4: printf("Thursday\n"); break; case 5: printf("Friday\n"); break; case 6: printf("Saturday\n"); break; case 7: printf("Sunday\n"); break; default: printf("输入有误!\n");} return 0;}
在这个示例代码中,我们使用switch语句根据用户输入的数字,输出对应的英文单词。如果用户输入的数字不在1到7之间,程序将会输出“输入有误!”这个提示信息。
除了使用常量作为case后面的值之外,还可以使用变量作为case后面的值。在这种情况下,switch语句将会根据变量的值来选择执行路径。需要注意的是,变量必须是整型或者字符型,并且不能是浮点型、指针型等其他类型。
下面是一个使用变量作为case后面的值的示例代码,它根据用户输入的数字,输出对应的阶乘值:
#include <stdio.h>int main(){ int num, i, fact = 1; printf("请输入一个数字:"); scanf("%d", &num); switch (num) { case 0: case 1: printf("%d的阶乘为1\n", num); break; default: for (i = 1; i <= num; i++) {fact *= i; } printf("%d的阶乘为%d\n", num, fact);} return 0;}
在这个示例代码中,我们使用switch语句根据用户输入的数字,计算并输出对应的阶乘值。当用户输入的数字为0或1时,程序将会直接输出1。当用户输入的数字大于1时,程序将会使用for循环计算阶乘值,并输出到控制台上。
需要注意的是,在这个示例代码中,我们使用了两个case语句来处理0和1这两种情况,它们的执行语句是相同的。这是因为在计算阶乘的时候,0和1的阶乘都是1。