为什么 进入switch语句 输入1选择的是 case 1里面的语句 为什么进入不了方法就直接结束了呢 请会的人指点

作者&投稿:针进 (若有异议请与网页底部的电邮联系)
switch语句进不去,为什么?~

你的scanf("%d",c);这有问题,应该为scanf("%d",&c);他要传的是地址而不是变量

先计算switch括号后面表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,如若后面有break语句,则直接跳出。
如果没有break语句,然后不再进行判断,继续执行后面的case后的语句。直到遇到break语句跳出。
如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

你没有为num赋值,只有初始值0,当然没有处理了
在switch语句前,使用如下语句为num申请输入数值:
cin>>num;

num始终是0最终只会执行
" case 0:
break;
"这一句,要给num" Console.ReadLine();"一个值啊

给num一个输入的值
num=Convert.ToInt32(Console.ReadLine());
获取到控制台输入的值

根据num的值选择分支语句,num=2 才执行case 2下的语句,没运行应是没执行case 2下语句


长治市19238453445: switch语句怎么用啊 具体啊! -
危仁八宝: switch(){case : case :...... }先说语法,再说注意事项switch的判断变量类型只能是字符型或者整型,请注意,只有这两种才可以switch后面紧跟的那个小括号里面就是 要判断的变量名称 然后switch要求它后面的大括号完整,不能不写case 后面加...

长治市19238453445: c语言switch语句 -
危仁八宝: 等于2 的时候 因为有case 2 并且case 2 里面有 break 所以就是执行了c++操作.1 和 3 因Wie没有case 那么就跑到了 default,而你default 没有break所以后面的case 2 里面的 还会执行 也就是 先做了 c+=k 然后执行了 c++操作 再由break 跳出...

长治市19238453445: c语言中的switch语句 -
危仁八宝: 首先外部switch语句中x=1,所以执行case 1:里面的语句,接着又一个switch语句判断y=0,所以进入case 0:里面的语句,由a++得到a=1;接着break,退出该switch语句,因为case 1后面没有break,所以继续执行case2: a++;b++,这个时候的a=2,b=1,然后一个break语句结束外层的switch语句,最后输出a=2,b=1;

长治市19238453445: 请详细举例解释说明下switch语句的用法? -
危仁八宝: if-else-end语句所对应的是多重判断选择,而有时也会遇到多分支判断选择的问题.MATLAB语言为解决多分支判断选择提供了switch-case语句.switch-case语句的一般表达形式为:switch〈选择判断量〉Case 选择判断值1选择判断语句1case ...

长治市19238453445: C语言关于SWITCH语句的跳转问题 -
危仁八宝: 因为你用getchar()来从缓冲区取得用户输入,getchar()函数是在用户按下回车键时从输入缓冲区取一个字符,而且用户按下的回车键也会进入到输入缓冲区! 所以当你输入'H'按下回车时,while循环执行两次,第一次读到'H',正常运行,第二次读到一个回车符,执行default的代码.在while循环中的 switch(ch) 上面加一句 fflush(stdin); 就正常了.依据个人经验调试分析,纯手打,望采纳.

长治市19238453445: switch 语句 到底有哪些用法 这样使用它 -
危仁八宝: switch语句 C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为: switch(表达式){ case常量表达式1: 语句1; case常量表达式2: 语句2; … case常量表达式n: 语句n; default : 语句n+1; } 其语义是:计算表达式的值. 并逐...

长治市19238453445: MATLAB代码中的switch语句怎么使用,知道的朋友能否告知一下,谢谢. -
危仁八宝: switch (s) case(1) …… case(2,3) …… case default …… end如果s=1,怎么么做 如果s=2或3,怎么做

长治市19238453445: switch语句 -
危仁八宝: 你使用的是scanf_s函数,调用这个函数需要指明输入的数据的个数,修改代码如下: #include <stdio.h>int main() {char b;scanf_s("%c",&b,1);//指明输入数据的个数//改为scanf("%c",&b);也可switch(b){case 'a':case 'b':case 'c':case 'd':case 'A':case 'B':case 'C':case 'D':printf("in abcd\n");break;default:printf("您输入的数据有误,"); } }输出结果:

长治市19238453445: C语言关于SWITCH语句的问题 -
危仁八宝: 因为C语言设计的时候,为了灵活性,switch的语法是反人性的,一个分支不加break的话,是不会自己跳出来的.这个跟想象中的分支的含义不太一样.这种语法的目的,仅仅是类似这种:case 'a':case 'b': DO SOMETHING; break; 表示条件 a 或者 b 其中任何一个成立,就执行,语言的实现方便.按照正常人喜欢的逻辑,最好能这么写:case 'a' || 'b' : DO SOMETHING; // 然后不用写break 不过这样就不是C语言了 我完全理解lz发这个问题的心情,要学就继续忍受,比这郁闷的坑多着

长治市19238453445: switch语句为啥不能运行 -
危仁八宝: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#include<stdio.h> #include<stdlib.h> #include<time.h> voidmain() {intx;srand(time(NULL));x=rand()%7+1;printf("%d\n",x);switch(x){case1:printf("Monday\n");break;//case的标号是要...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网