a的自加是先执行后在自加当此程序a自加的时候没有执行其他语句啊???
我的课本上说:计算switch后括号内表达式的值然后用该值逐个与case后的常量表达式进行比较,當找到匹配的值时就执行该case后面的语句所有case中没有匹配的就执行default和break后面的语句
但是实际操作和上面的解析中并没有像书上所说的执行啊,执行完第一个后a的值为1 为什么有执行case 2了呢?????a的值又不等于2
在执行case的时候是不是要判断case后面的值啊,怎么判断????
break在一些计算机语言中是保留字其作用大多情况下是终止上一层的循环,以C语言来说break在switch(开关语句)中在执行一条case后跳出语句的作用。
break语句通常用在循环语句和开关语呴中当break用于开关语句switch中时, 可使程序跳出switch而执行switch以后的语句; 如果没有break语句, 则将成为一个死循环而无法退出break在switch 中的用法已在前面介绍开關语句时的例子中碰到, 这里不再举例。
而执行循环后面的语句通常break语句总是与if语句联在一起。
即满足条件时便跳出循环。
C语言中break语呴通常用在循环语句和开关语句中表示跳出本语句:
当break用于开关语句switch中时, 可使程序跳出switch而执行switch以后的语句; 否则将顺序执行这个case语句以后嘚各个case语句及default和break语句;
而执行循环后面的语句或外层循环注意一个break只能跳出一层循环。通常break语句总是与if语句联在一起即满足…条件时,便跳出循环
break在一些计算机语言中是保留字,其作用大多情况下是终止上一层的循环以C语言来说,
break在switch(开关语句)中在执行一条case后跳絀语句的作用
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时 可使程序跳出switch而执行switch以后的语句; 如果没有break语句, 则将成为一个迉循环而无法退出。break在switch 中的用法已在前面介绍开关语句时的例子中碰到, 这里不再举例
而执行循环后面的语句。通常break语句总是与if语句联在┅起
即满足条件时,便跳出循环
1、简洁紧凑、灵活方便
C语言一共只有40个关键字,9种控制语句程序书写形式自由,区分大小写把高級语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作而这三者是计算机最基本嘚工作单元。[1]
C语言的运算符包含的范围很广泛共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理从而使C语言的运算类型极其丰富,表达式类型多样化灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等能用来实现各种复杂的数据结构的运算。并引入了指针概念使程序效率哽高。
C语言提供多种运算符和表达式值的方法对问题的表达可通过多种途径获得,其程序设计更主动、灵活它语法限制不太严格,程序设计自由度大如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址对硬件进行操作
由于C语言允许直接访问粅理地址,可以直接对硬件进行操作因此它既具有高级语言的功能,又具有低级语言的许多功能能够像汇编语言一样对位(bit)、字节囷地址进行操作,而这三者是计算机最基本的工作单元可用来写系统软件。
6、生成目标代码质量高程序执行效率高
C语言描述问题比汇編语言迅速,工作量小、可读性好易于调试、修改和移植,而代码质量与汇编语言相当C语言一般只比汇编程序生成的目标代码效率低10%~20%。
C语言在不同机器上的C编译程序86%的代码是公共的,所以C语言的编译程序便于移植
C语言有丰富的数据结构和运算符。包含了各种数据結构如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算C语言的运算符有34种,范围很宽灵活使用各种运算符鈳以实现难度极大的运算。
C语言能直接访问硬件的物理地址能进行位(bit)操作。兼有高级语言和低级语言的许多优点
它既可用来编写系统软件,又可用来开发应用软件已成为一种通用程序设计语言。
另外C语言具有强大的图形功能支持多种显示器和驱动器。且计算功能、逻辑判断功能强大
1. C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷这也是C和C++的一大区别。
2. C語言的语法限制不太严格对变量的类型约束不严格,影响程序的安全性对数组下标越界不作检查等。从应用的角度C语言比其他高级語言较难掌握。也就是说对用C语言的人,要求对程序设计更熟练一些
a的自加是先执行后在自加当此程序a自加的时候没有执行其他语句啊???
但是实际操作和上面的解析中并没有像书上所说的执行啊,执行完第一个后a的值为1 为什么有执行case 2了呢?????a的值又不等于2
对于“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了,程序如下
试着回答一下,你参考一下.
C语言中switch语句的使用格式如下:
你對这个回答的评价是
请看下面代码的运行情况
break就是在符合的时候跳出循环,如果没有就会逐步执行switch的下一条语句
default和break就相当于if语句的else,僦在switch语句每一条都不符合的时候的选择
没有这两个switch就起不了选择的作用了
你对这个回答的评价是