switch在c语言中怎么用

1个回答
展开全部
摘要 亲~您好啊。在 C 语言中,switch 是一种控制结构,通常用于多分支流程控制。switch 和 if-else 结构类似,但是适用于多个取值情况固定的情况。下面是 switch 的基本语法:
switch(expression) {
case constant-expression:
statement(s);
break; /* 可选的,表示跳出 switch 语句 */
case constant-expression:
statement(s);
break; /* 可选的,表示跳出 switch 语句 */ /* 可以有任意数量的 case 语句 */
default:
statement(s);
其中,expression 是需要被测试的变量或表达式,case 是需要匹配的常量表达式,可以有多个 case 分支。对于每个 case 分支,在匹配 expression 的情况下,执行相应的 statement(s) 语句。通过使用 break 来跳出 switch 语句,防止无意义的继续执行。
下面是一个例子,演示了 switch 的用法:
#include // 注意,你可能遗漏了引入标准输入输出库的指令
int main() {
int day = 3; // 判断第 day 天是星期几
switch(day) {
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
// 注意这里没有 break,所以当 day = 3 时,会同时执行 case 3 和 case 4 的代码
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break; // 注意这里有一个多余的 break,因为 default 分支通常不使用 break 来跳出 switch 语句。如果不想使用 default 分支,可以删除它。
}
return 0; // main 函数返回 0 表示程序正常退出
咨询记录 · 回答于2024-01-11
switch在c语言中怎么用
亲~您好啊。在 C 语言中,switch 是一种控制结构,通常用于多分支流程控制。switch 和 if-else 结构类似,但是适用于多个取值情况固定的情况。 下面是 switch 的基本语法: switch(expression) { case constant-expression: statement(s); break; /* 可选的,表示跳出 switch 语句 */ case constant-expression: statement(s); break; /* 可选的,表示跳出 switch 语句 */ /* 可以有任意数量的 case 语句 */ default: statement(s); 其中,expression 是需要被测试的变量或表达式,case 是需要匹配的常量表达式,可以有多个 case 分支。对于每个 case 分支,在匹配 expression 的情况下,执行相应的 statement(s) 语句。通过使用 break 来跳出 switch 语句,防止无意义的继续执行。 下面是一个例子,演示了 switch 的用法: #include int main() { int day = 3; // 判断第 day 天是星期几 switch(day) { case 1: printf("星期一\n"); break; case 2: printf("星期二\n"); break; case 3: printf("星期三\n"); case 4: printf("星期四\n"); break; case 5: printf("星期五\n"); break; case 6: printf("星期六\n"); break; case 7: printf("星期天\n"); break; } return 0; // 注意这里要返回一个值,因为 main 函数的返回类型是 int。这里返回0表示程序正常结束。 // 此处应当结束 switch 语句,并且记得添加一个返回语句以表示 main 函数的正常结束。这个返回值是整型,所以使用 "return" 而非 "exit"。 // 这里 "return" 的作用是返回一个值给操作系统,通常表示程序的退出状态。在大多数操作系统中,返回0通常表示程序正常退出,而非0值表示异常退出。这是一个好的编程实践,因为它允许操作系统或其他程序检测你的程序是否成功执行。 // 注意:如果你的程序没有返回语句(例如 "return 0;"),那么它将默认返回一个值,通常是 "undefined",这可能会导致你的程序表现得不可预测或不稳定。因此,在你的程序中始终包含一个返回语句是一个好习惯。 // 在这个例子中,"return 0;" 表示程序正常结束。如果你想表示程序异常结束,你可以使用非零值(例如 "return -1;")。请注意,"exit" 函数也可以用来结束程序,但它不返回一个值给操作系统。"exit" 函数通常用于程序出现严重错误或异常情况时。"exit" 函数会立即终止程序,而 "return" 语句会先执行完当前函数再退出程序。因此,"exit" 和 "return" 在使用上有一些区别。 // 注意:在编写代码时,应该避免使用全局变量来存储程序的退出状态。这是因为全局变量可能会被其他函数或程序意外地修改,从而导致你的程序行为变得不可预测。你应该总是尽可能地使用局部变量来存储临时信息或状态。同时,也应当注意不要使用 "goto" 语句来控制程序的流程。"goto" 语句会破坏程序的层次结构和清晰度,并可能导致错误和混乱。"goto" 语句通常只应该用来处理一些非常特殊的错误情况,比如在某些系统编程场景下需要立即跳出多层次嵌套的函数调用。
break; default: printf("无效的天数\n"); } return 0;}输出结果为:星期三星期四可以看出,因为在第三天没有使用 `break`,所以从第三天开始,所有的分支都会被执行。
#define _CRT_SECURE_NO_WARNINGS #include int main() { int num1, num2; int n, s, r; int count0 = 0, count1 = 0, count2 = 0; int count3 = 0, count4 = 0, count5 = 0; int count6 = 0, count7 = 0, count8 = 0; int count9 = 0; printf("input two integers: "); scanf("%d%d", &num1, &num2); if (num1 < 0 || num2 < num1) { printf("Invalid input!\n"); return -1; } for (int i = num1; i <= num2; i++) { int temp = i; while (temp != 0) { int digit = temp % 10; switch (digit) { case 0: count0++; break; case 1: count1++; break; case 2: count2++; break; case 3: count3++; break; case 4: count4++; break; case 5: count5++; break; case 6: count6++; break; case 7: count7++; break; case 8: count8++; break; case 9: count9++; break; } temp /= 10; } } printf("Count of 0: %d\n", count0); printf("Count of 1: %d\n", count1); printf("Count of 2: %d\n", count2); printf("Count of 3: %d\n", count3); printf("Count of 4: %d\n", count4); printf("Count of 5: %d\n", count5); printf("Count of 6: %d\n", count6); printf("Count of 7: %d\n", count7); printf("Count of 8: %d\n", count8); printf("Count of 9: %d\n", count9);
#define _CRT_SECURE_NO_WARNINGS #include #include #include #define ARRAY_LEN 10 int main() { int num1, num2; int n, s, r; int counts[ARRAY_LEN] = {0}; // 初始化为0 printf("请输入两个整数:"); scanf("%d%d", &num1, &num2); if (num1 < 0 || num2 < num1) { printf("输入无效!"); return -1; } for (int i = num1; i 0) { if (current_num < 0) { break; } int digit = current_num % 10; counts[digit]++; current_num /= 10; } } printf("数字个数:\n"); for (int i = 0; i < ARRAY_LEN; i++) { printf("%d: %d\n", i, counts[i]); } return 0;
就不能根据我发的代码上的那个改吗
亲~您好啊。就是根据您发的改的啊。
为什么打出来是这样的
亲~您好啊。那是您发的代码不全吧。
#include int main() { int num1, num2; int count0, count1, count2, count3, count4, count5, count6, count7, count8, count9; printf("input two integers: "); scanf("%d%d", &num1, &num2); if (num1 < 0 || num2 < num1) { printf("Invalid input!\n"); return 1; } count0 = count1 = count2 = count3 = count4 = count5 = count6 = count7 = count8 = count9 = 0; for (int i = num1; i 0) { int digit = temp % 10; switch (digit) { case 0: count0++; break; case 1: count1++; break; case 2: count2++; break; case 3: count3++; break; case 4: count4++; break; case 5: count5++; break; case 6: count6++; break; case 7: count7++; break; case 8: count8++; break; case 9: count9++; break; } temp /= 10; } } printf("Count of 0: %d\n", count0); printf("Count of 1: %d\n", count1); printf("Count of 2: %d\n", count2); printf("Count of 3: %d\n", count3); printf("Count of 4: %d\n", count4); printf("Count of 5: %d\n", count5); printf("Count of 6: %d\n", count6); printf("Count of 7: %d\n", count7); printf("Count of 8: %d\n", count8); printf("Count of 9: %d\n", count9); return 0;
printf("input error!\n"); exit(-1); for (n = num1; n <= num2; n++) { s = n; do { r = s % 10; switch (r) { case 0: count0++; break; case 1: count1++; break; case 2: count2++; break; case 3: count3++; break; case 4: count4++; break; case 5: count5++; break; case 6: count6++; break; case 7: count7++; break; case 8: count8++; break; case 9: count9++; break; s = s / 10; } while (s != 0);
#include int main() { int num1, num2; int n, s, r; int count[10] = {0}; // 定义一个长度为10的数组,初始值全部为0 printf("请输入两个整数:"); scanf("%d%d", &num1, &num2); if (num1 < 0 || num2 < num1) { printf("输入错误!"); exit(-1); } for (n = num1; n <= num2; n++) { s = n; do { r = s % 10; count[r]++; // 将每个数字的每一位数码取出,然后在count数组中对应的位置加1 s = s / 10; } while (s != 0); } // 输出count数组中每个元素的值,即为每个数码出现的个数 for (int i = 0; i < 10; i++) { printf("count%d = %d\n", i, count[i]); } return 0;
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消