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增加一, 但返回原来的是未增加的值。

表达式就有由一串“数字”和“符号”组成的式子,例如1+2是表达式,12*8-1*99也是表达式。C++
的“符号”除了普通的算术运算+-*/之外还有其他的。
常量表达式就是表达式里面只有常量的式子,比如1+2是常量表达式,如果定义a为常量1,那么a+2也是常量表达式。
如果定义变量a,那么a+2就不是常量表达式。

//////////////////////////////////////////////
问题补充:请问选哪个?? case 常量表达式!
//////////////////////////////////////////////
选择C,D,这两个都是正确的

a:
switch(x)
{
case 1.0:printf("*
");
case 2.0:printf("*
");
}
//a错误,case后的表达式必须为整型或者字符型

b:
switch(x)
{
case 1,2:printf("*
");
case 3:printf("*
");
}
//b错误,case后的表达式只能有一个,所以case 1,2:是错的

c:
switch(a+b)
{
case 1:printf("*
");
case 1+2:printf("*
");
}
//对的,常量(1)是有效的,常量表达式(1+2)是有效的

d:
switch(a+b)
{
case 1:printf("*
");
case 2:printf("*
");
}
//对的,常量(1),常量(2)是有效的

C语言程序语句switch:
  switch用在编程中,如C语言中它经常跟case一起使用,是一个判断选择代码。其功能就是控制业务流程流转的。
  switch语句的语法如下(switch,case和default是关键字):
  switch ( controllingExpression )
  {
  case constantExpression1 :
  case constantExpression2 :
  case constantExpression3 :
  statements; //当满足constantExpression1、constantExpression2、constantExpression3任何一个都执行statements
  break;
  case constantExpression :
  statements ;
  break;
  ...
  default :
  statements ;
  break;
  }
  遵守switch语句规则
  switch语句非常有用,但在使用时必须谨慎。所写的任何switch语句都必须遵循以下规则:
  只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
  case标签必须是常量表达式(constantExpression),如42或者"42"。如果需要在运行时计算case标签的值,必须使用if语句。
  case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。
  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");break;
  case 7:printf("C(良好)\n");break;
  case 6:printf("D(及格)\n");break;
  case 5:
  case 4:
  case 3:
  case 2:
  case 1:
  case 0:printf("E(不及格)\n");break;
  default:printf("Error!\n");
  }
  }
  例二:
  #include<stdio.h>
  int main()
  {
  char rank;
  printf("请输入分数等级:(A、B、C、D、E)\n");
  scanf("%c",&rank);
  switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,
  {
  case 'A':printf("A(90~100)\n");break;
  case 'B':printf("B(80~89)\n");break;
  case 'C':printf("C(70~79)\n");break;
  case 'D':printf("D(60~69)\n");break;
  case 'E':printf("E(0~59)\n");break;
  default:printf("error!\n");break;
  }
  }
  例三:
  输入年月日,判断这一天是这一年的第几天。
  #include<stdio.h>
  int main()
  {
  int year,month,date,leap,days=0;
  scanf("%4d%2d%2d",&year,&month,&date);
  leap=(year%4==0&&year%100!=0||year%400==0);
  switch(month)
  {
  case 12:days+=30;
  case 11:days+=31;
  case 10:days+=30;
  case 9:days+=31;
  case 8:days+=31;
  case 7:days+=30;
  case 6:days+=31;
  case 5:days+=30;
  case 4:days+=31;
  case 3:days+=28+leap;
  case 2:days+=31;
  case 1:days+=date;break;
  }
  printf("%4d年%2d月%2d日是这一年的第%d天。\n",year,month,date,days);
  }
希望对你有帮助。

scanf语句前有不能识别的符号,去掉就可以了。

#include<stdio.h>
void main()
{
int sum;
printf("请输入分数:\n");
scanf("%d",&sum);
switch(sum)
{
case 1:
printf("李俊基1");
break;

case 2:
printf("李俊基2");
break;

case 3:
printf("李俊基3");
break;

default:
printf("你输入有误");
break;
}
}

default后面不要加break试试

C语言switch语句怎么用?
答:C语言用switch语句进行成绩等级判断可以采用以下的代码:main(){int i,a;scanf("%d",&a);i=a/10;switch a {case '10':case '9': printf("A"); break;case '8': printf("B"); break;case '7': printf("C"); break;case '6': printf("D");else printf("E");} } ...

c语言switch语句
答:c语言switch语句 C语言中的switch语句是一种多路选择结构,用于根据不同的条件执行不同的代码块。switch语句根据表达式的值与case标签进行比较,如果匹配,则执行相应的代码块,并继续检查下一个case标签,直到找到匹配的标签或所有case标签都已检查完毕。如果没有找到匹配的case标签,则执行default代码块(如...

c语言中switch语句是什么意思?
答:1、SWITCH语句的字面意思是开关,是用来进行多重选择。具体的用法首先打开C-Free5.0软件,然后新建一个名为switch.c文件,然后在引入头文件和main主函数:2、首先定义一个整型数值,然后从外面写入这个值,这里用到的scanf函数就是从外面读入一个值给a,然后运行一下,输入一个数验证:3、接着用switch...

c语言switch的用法 详细些 谢谢
答:switch(rank)//switch((int)score/10)出现严重错误,switch(((int)score)/10)出现严重错误,{ case 'A':printf("A(90~100)\n");break;case 'B':printf("B(80~89)\n");break;case 'C':printf("C(70~79)\n");break;case 'D':printf("D(60~69)\n");break;case 'E':printf(...

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

switch语句在C语言是什么意思啊?
答:Switch用在C语言中它经常跟Case一起使用,是一个判断选择代码。Switch作用与if语句类似,其功能就是控制业务流程流转的。只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。如下:include<stdio.h>int main(){char rank;printf("请输入分数等级:(A、B、C、D、...

C语言里的switch语句怎么用,最好有例子哈~!
答:下面就C语言中switch 语句的使用特点谈谈自己的体会。 --- switch 语句的格式如下: switch( 表达式) {case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式3: 语句3 case 常量表达式n: 语句n default : 语句n+1 } --- 从表面上看来,switch 语句与PASCAL 语言中的case 语句...

C语言中switch语句什么意思
答:Switch在C语言中是保留字,其作用是进行判断选择。switch(开关语句)常和case break default一起使用。Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断选择代码。其功能就是控制流程流转的。直线翻译:switch语句,即“切换”语句;case即“情况”。当变量表达式所表达的量与其中一个case...

在C语言中, switch语句可以包含if语句吗?
答:在C语言中,switch语句的case分支中可以包含if语句。这样可以在满足特定条件时执行特定的代码块。以下是一个简单的C语言程序,用于演示switch语句的case分支中包含if语句的情况:在这个程序中,我们首先定义了一个整型变量num,用于存储用户输入的数。然后,我们使用printf函数输出提示信息,使用scanf函数从用户...

c语言switch
答:include<stdio.h> // 包含一个C语言标准输入输入头文件stdio void main () // 入口函数 { int i; // 定义一个整形变量i for(i=1;i<=5;i++) // 初始化为1,不断累加到5 switch(i%5) //求模,i为1时,为1,2时为2,3时为3,4时为4,5时为0 {case 0:printf...