------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">、java培训</a>期待与您交流! ----------
switch语句注意点:
1) default,正常情况下,只有当switch语句的前面分支没有获得执行时,default分支才会获得执行的机会。2) break,在case分支后的每一个代码块后都有一条break;语句, 这个break;语句有极其重要的意义:
用来终止当前分支的执行体。如果某个case分支之后没有使用break;来终止这个分支的执行体,即使使用
花括号来包围该分支的执行体也是无效的。 Java一旦找到匹配的case分支(表达式的值与case后的值相等),
程序开始执行这个case分支的执行体,不再判断与后面case、default标签的条件是否匹配,除非遇到break;
才会结束该执行体。
其实从 JDK1.5开始,Java编译器增加了更加严格的检查,只要在javac命令后增加 -Xlint:fallthrough选项,
Java编译器就会提示缺少break;的警告。
如下代码:
public class SwitchTest2 {
public static void main(String args[] ){
char score='c';
switch(score){
case 'a':
System.out.println("优秀");
break;
case 'b':
System.out.println("良好");
break;
case 'c':
System.out.println("中");
//break;
case 'd':
System.out.println("及格");
//break;
case 'e':
System.out.println("不及格");
break;
default:
System.out.println("成绩输入有误!");
}
}
}
结果为:
中
及格
不及格
3)switch表达式的类型:byte,字节整型;short,短整型;int,整型;char,字符型;enum,枚举型
注意:switch表达式的类型绝对不能时String类型,也不能是long、float、double等其他基本类型。
switch的表达式可以是enum类型,示例如下:
enum Season{
SPRING,SUMMER,FALL,WINTER
}
public class EnumSwitch {
public static void main(String args[]){
Season s = Season.FALL;
switch(s){
case SPRING:
System.out.println("春天不是读书天");
break;
case SUMMER:
System.out.println("夏日炎炎正好眠");
break;
case FALL:
System.out.println("秋多蚊蝇");
break;
case WINTER:
System.out.println("冬日冷");
break;
}
}
}
结果为:秋多蚊蝇
循环语句:
while:先判断条件,只有条件满足才执行循环体。
do while: 先执行循环体,在判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。
for(初始化表达式;循环条件表达式;循环后的操作表达式){
执行语句;
}
for(int x = 0; x<3 ; x++){
System.out.println("x="+x);
}
int y=0;
while(y<3){
System.out.println("y="+y);
y++;
}
结论:
1,变量有自己的作用域。对于for来讲:如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效。
for语句执行完毕。该变量在内存中被释放。(局部变量定义在栈内存区,当数据使用完,所占空间就会自动释放)
而对于switch而言,上面的例子,y定义在while外面,当while执行完后y还是存在内存中,并没有自动释放出空间。
从这里就可以看出,在都定义循环增量时,显然for比while更加优化。
2,for和while可以进行互换。如果需要定义循环增量。用for更为合适。
总结:
什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
public class ForForDemo {
public static void main(String args[]){
for(int x=0 ; x<5 ; x++){ //外循环控制行
for(int y=0; y<5-x;y++){ //内循环控制列
System.out.print("*");
}
System.out.println();
}
//发现图形有很多行,每一个行有很多列。
//要使用嵌套循环。原理:形象说法:大圈套小圈。
System.out.println("----------------------------------------------------------");
for(int x=0 ; x<5 ; x++){ //外循环控制行
for(int y=0; y<x+1;y++){ //内循环控制列
System.out.print("*");
}
System.out.println();
}
System.out.println("----------------------------------------------------------");
}
}
结果:
*****
****
***
**
*
----------------------------------------------------------
*
**
***
****
*****
----------------------------------------------------------
九九乘法表:
public class chengFaBiao {
public static void main(String args[]){
for(int i=1; i<=9; i++){
for(int x=1; x<=i; x++){
System.out.print(x+"*"+i+"="+i*x+"\t");
}
System.out.println();
}
}
}
------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------