[例3-6] 用switch语句判断一个月份属于一年哪个季节(春、夏、秋、冬)。 class SwitchDemo{ public static void main(String args[]) { int month=7; String season; switch (month) //值为12、1和2时将都执行:season="冬季"; break; { case 12: case 1: case 2: season="冬季"; break; case 3: case 4: case 5: season="春季"; break; case 6: case 7: case 8: season="夏季"; break; case 9: case 10: case 11: season="秋季"; break; default: season="错!"; } System.out.println("月份 季节"); System.out.println(month+" "+season); } } 该程序运行后输出:月份 季节 7 夏季
   
2.2 循环语句
while 语句
while语句形式如下:    while (布尔表达式) {语句块} 说明:while:语句的关键字; 布尔表达式:循环条件; 语句块:循环体,是一个语句,若是多个语句则应构成复合语句。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
[例3-7] Sum1.java用while循环语句计算s=1+1/2+1/3+…+1/100 class Sum { public static void main(String args[]) { int n=100; //循环总数n=100 int i=1; //循环次数,初值为1 float s=0; //和s为实型 while (i<=100) //循环条件,循环总数100 { s=s+(1.0f/i); //s增加1/i ,1.0f表示是float型 i++; //循环次数加1 } System.out.println(“s=”+s); } }
[例3-9] sum3.java 编程求S=12+22+…92 public class sum3{ public static void main(String args[]){ int s=0; for(int i=1;i<=9;i++) s=s+i*i; System.out.println("s="+s); } }
分析: 设变量I、J、K分别代表公鸡数、母鸡数及小鸡数,则应满足下列一些条件: ① I+J+K=100(只),I,J,K0; ② 5I+3J+K/3=100(元); ③ 若用100元全部买公鸡,最多只能买20只, 所以I≤20;若全部买母鸡最多只能买33只,所以J≤33; 而小鸡数目就是100-I-J;(简化计算) 根据以上分析,可编程如下:
public class Loop_Loop { public static void main(String args[]) { int I,J,K; System.out.println(" I J K "); for (I=0;I<=20;I++ ) { for ( J=0;J<=33;J++) { K=100-I-J; if (5*I+3*J+K/3.0==100) //注意“K/3.0” System.out.println(I+" "+J+" "+K); } } } }
习题1:分析该程序的输出结果 int x=5; do{ switch(x%2) { case 1: x--; break; case 0: x++; break; } x--; System.out.println(x); }while(x>0); 运行结果: 3 1 -1
习题2:分析该程序的输出结果 int a=5,b=6,i=0,j=0; switch(a) { case 5: switch(b) { case 5:i++;break; case 6:j++;break; default:i++;j++; } case 6: i++;j++; break; default: i++;j++; } System.out.println(i+","+j); 运行结果: 1,2
  (2) break用于跳出循环体
break可用于跳出for循环、while循环、do while循环。
1 2 3 4 5 6 7
int sum=0; for(int i=1;i<=100;i++) { sum=sum+i; if(i==50)break; } System.out.println(sum); //结果为1275
[例3-11] ConDemo.java public class ConDemo{ public static void main(String args[]){ int index=0; while(index<=99) { index+=10; if(index==40) continue; System.out.println(" The index is "+index); } }
程序运行结果: The index is 10 The index is 20 The index is 30 The index is 50 The index is 60 The index is 70 The index is 80 The index is 90 The index is 100
1. public class ArithmeticOp{ public static void main(String args[ ]){ int a,b,c; a=b=c=2; a=++b - ++c; //0 3 3 System.out.println(″a=″+a+″b=″+b+″c=″+c); a =b++ + c++; //6 4 4 System.out.println(″a=″+a+″b=″+b+″c=″+c); a =b-- + c--; //8 3 3 System.out.println(″a=″+a+″b=″+b+″c=″+c); } }
2. public class TestSwitch{ public static void main(String args[ ]){ int x=1,y=2,i=0,j=0; switch(x){ case 1: switch(y){ case 1: i++; break; case 2: j++; break; default:i++; j++;} //i=0 j=1
3. public class J_Test{ static boolean mb_fun(char c) { System.out.print(c); returntrue; } public static void main(String args[]){ int i=0; for(mb_fun(‘A’);mb_fun(‘B’)&&(i<2);mb_fun(‘C’)) { i++; mb_fun(‘D’); } } } //结果: A B D C B D C B