C语言的switch语句的问题。

作者&投稿:岑衬 (若有异议请与网页底部的电邮联系)
c语言switch语句~

执行case 2是因为在switch (x) 中x=1,所以执行case 1,然而case 1 这条语句没有break,所以switch (x)在执行了case 1之后将继续往下依次执行case语句,直到碰到break就跳出switch 循环。

对于“a的自加是先执行后在自加,当此程序a自加的时候没有执行其他语句啊?????? ” 则是你没看到程序中的语句a++,b++它自加完了以后把值任然是赋值给a,b本身的,而不是赋值给其他变量例如c=a++;z=b++。如果是这样赋值给别的变量的话那么就很明确了c,z的值将和课本上说得一样都是自加以前的值 。也就是说这个程序当中最后printf输出的是a,b的值,但是a,b在自加过程中值都变化了,就是说相当于语句a=a++,b=b++.
我将你的程序进行了更改,你将两个程序都运行下然后再对照着看一下就明白为什么a,b的值最后是2和1了,程序如下
#include
main()
{
int x=1,y=0,a=0,b=0,c=0,z=0;
switch (x)
{case 1:
switch(y)
{
case 0:c=a++;break;
case 1:b++;break;
}
case 2: c=a++,z=b++;break;
case 3:a++,b++;
}
printf("c=%d,z=%d
",c,z) ;
}

对于 ++i 和i++ 有什么区别?
简单而言: ++i在i 存储的值上增加一并向使用它的表达式“返回” 新的, 增加后的值; 而i++ 对i增加一, 但返回原来的是未增加的值。

main()
{

char t;
scanf("%c",&t);//这里,输入时要注意加&
switch(t)
{case 'A':printf("85~90");break;//要加break,不然还会一直执行下面的语句
case 'B':printf("80~85");break;
case 'C':printf("70~85");break;
case 'D':printf("<70");break;
getch();
getch();
getch();
getch();
}
getch();
getch();
getch();
getch();
}

这道题主要考的是break的问题,当case'c':case'C':printf("pass");后有break后运行结果就为pass。没有error了。
你所困惑的那点是这样的,'c'和'C'的ASCII码不同,前者是63H,后者是43H。
希望多去csdn看看

#include<stdio.h>
main()
{
int n='c';
switch(n++)
{
case'a':case'A':case'b':case'B':printf("good");break;
case'c':
case'C':
printf("pass");
case'd':
case'D':
printf("warn");break;
default:printf("error");break;
}
}
这样看你应该就能理解了。。。

但是在printf("pass");后没有break还得打出printf("pass");

才学c看去恼火呀


C语言的switch语句中的条件都可以是什么类型?
C语言的switch语句只能针对基本数据类型使用,这些类型包括int、char、枚举、bool等。对于其他类型,则必须使用if语句。在一个 switch 中可以有任意数量的 case 语句。每个 case 后跟一个要比较的值和一个冒号。case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或...

c语言中switch怎么用?
C语言中switch是条多分支选择语句。通常情况下格式如下:switch(表达式){ case 常量表达式1: 语句1; case 常量表达式2: 语句2; … case 常量表达式n: 语句n; default: 语句n+1;} 其中default不一定放在最后 完整格式:switch(表达式){ case 常量表达式1: 语句1; cas...

简述流程控制语句中的switch语句的结构是怎样的
switch语句的格式:switch (表达式){ case目标值1:执行语句1 break;case目标值2:执行语句2 break;...case目标值n:执行语句n break;default:执行语句n+1 break;} 在上面的格式中,switch语句将表达式的值与每个case中的目标值进行匹配,如果找到了匹配的值,会执行对应case后的语句,如果没找到任何...

c语言switch语句中default是什么意思?
switch语句是一种在C语言中常用的流程控制语句,用于根据不同的条件执行不同的代码块。这个结构通常包含一个或多个case标签和一个可选的default标签。default标签是switch语句中的一个可选部分,用于在所有case标签都不匹配时执行特定操作。如果在switch语句中没有匹配任何case标签,则会执行default标签相关的...

c语言switch的用法 详细些 谢谢
C语言switch应用例子:例一:include<stdio.h> int main(){ double score;printf("请输入分数:\\n");scanf("%lf",&score);switch((int)(score\/10)) \/\/如果写成witch((int)score\/10)会出现严重错误 { case 10:case 9:printf("A(最好)\\n");break;case 8:printf("B(优秀)\\n");br...

java语言中的switch语句是什么意思?说的白话一点,别太专业了!_百度知 ...
switch是Java语句中的一个条件语句,就是一个事情满足了发生的条件就会执行一个结果,反之就会执行另一个结果。

switch什么意思 switch代表的意思
vi.交换;调换。第三人称单数:switches;过去分词:switched;复数:switches;现在进行时:switching;过去式:switched。例句:1.So why not switch to another animal?那为什么不换成其他的动物呢?2.I can't see any reason not to switch.我想不出任何不开关的理由。2、switch还是一种计算机语言...

switch语句
switch语句是当指定的表达式的值与某个标签匹配时,即执行相应的一个或多个语句。它用于基于不同的条件来执行不同的代码,当要针对变量设置一系列的特定值的选项时,就可以使用switch。switch语句还可以被用于type-switch来判断某个 interface 变量中实际存储的变量类型。编程语言中switch语句变量 var1 可以...

switch语句
执行过程:先计算并获得switch后面小括号里的表达式或变量值,然后将计算结果顺序与每个case后的常量比较。当二者相等时,执行个case块中的代码,当遇到break时,就跳出switch选择结构,执行switch选择结构之后的代码。如果任何一个case之后的常量与switch后的小括号中的值相等,则执行switch尾部的default块中...

c语言中的switch语句,使用时应注意哪些?
c语言中的switch语句,使用时应注意哪些? Switch语句编程规范总结: 【规则1】每个case 语句的结尾不要忘了加break,否则将导致多个分支重叠(除非有意使多个分支重叠)。 【规则2】不要忘记最后那个default 分支。即使程序真的不需要default 处理,也应该保留语句 default : break; 这样做并非多此一举,而是为了防止别人...

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

林芝地区19881495954: C语言中的switch问题 -
检轮布瑞: 简单的说switch语句也是属于判断语句,if else语句适合3个以内的判断,但是多了用if就不太方便了,所以这时3个以上的判断用switch语句就比较方便了,结构就像楼上的兄弟们那样写的,大概怎么用我举个例子你就懂了.例:判断一周的食谱...

林芝地区19881495954: 关于C语言switch语句问题 -
检轮布瑞: int i=3; switch(i%3){case 0:printf("0"); //如果不加break程序会一直向下执行,知道break才跳出break;case 1:printf("1");break;case 2:printf("2");break}

林芝地区19881495954: C语言中的switch语句问题,需详解 -
检轮布瑞: 第一个是x值是2 你定义的case0语句后面后没break说明x为0的时候不仅要执行case0的代码还要执行case1的x的值就会变化..但是x为2所有就执行默认的default:y=3;x=1 结果是y=3x=1z=1 同理第二个 就执行case 1:x=4;break;结果是x=4y=3z=0

林芝地区19881495954: C语言问题,switch语句的疑问 -
检轮布瑞: 首先a[15]不是个数组,它是个数组元素调用,但是数组a中没有标号为15的元素(下标索引0~n-1),所以数组溢出!程序应该会报错 其次不能将整个数组放在switch()里面,他只能判断单个元素

林芝地区19881495954: c语言的switch问题
检轮布瑞: A的switch和case都错了,switch后的变量只能是整数,case也是.浮点数要加上(int)强制类型转换. B的switch后跟了个":"分号,表示语句结束,而switch和case必须是成对出现的.

林芝地区19881495954: 一个关于二级C语言switch语句的问题
检轮布瑞: 1 C语言中switch语句可以没有default2 首先,switch中的语句可以没有break;如果当前语句没有break,那么程序将在接下去第一个有break的语句时停止3 case翻译是情况的意思 case 3:后面什么也没有是对的,但出现2次case 3就错了,因为每一种情况是唯一的.4 不知道

林芝地区19881495954: c语言,switch使用问题,求解 -
检轮布瑞: case只能是个具体整数值,包括char,取值范围是不可以用的,只能用if

林芝地区19881495954: c语言编程switch语句问题
检轮布瑞: '单引号是字符型的case x 这个x表示一个整数case 'x':这个x表示一个字符char xswitch就需要 case '1':

林芝地区19881495954: c 程序的switch语句问题 -
检轮布瑞: 是执行完CASE语句后,N的值才+1. 注:n++与++n的区别.

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