1、”组成的语句称为空语句如:for (int i=1;i11;System.out.println(i),i+) ; /空语句if语句(条件语句)实现2路分支结构,switch语句(多路分支语句)实现多路分支结构。if语句的一般形式是:if ()语句块1 else 例31 找出3个整数中的最大值和最小值(P40,例3-1)。public class Ch3Ex1 static int max,min,a=1,b=2,c=3;public static void main(String args ) if (ab) max = a; else max = b; if (cmax) max = c;
2、 System.out.println(max = +max); min = ab ? a : b; min = cmin ? c : min;min = +min); 注意3点:(1)布尔表达式可以是关系表达式、逻辑表达式,但不能是整数表达式。int x=0;if (x) ./非法(2)if语句必须有then子句,但可以没有else子句。(3)if语句可嵌套。if (ab) if (bc) min=a;switch语句的一般形式为:switch (case :break;常量2常量n break;default:语句n+1注意:switch后的表达式必须是byte、short、char、in
3、t或enum型。下面是2个例子。例32 编写一个Application程序,接受用户输入的一个1-12之间的整数(如果输入的数据不满足这个条件,则要求用户重新输入),利用switch语句输出对应月份的天数。import java.io.*;public class Ch3Ex2 static int i=0;public static void main(String args) do System.out.println(请输入112之间的一个整数:);BufferedReader br = new BufferedReader(new InputStreamReader(System.in
4、);try String s= br.readLine();i = Integer.parseInt(s); catch(IOException ioe) System.err.println(ioe.toString(); System.exit(0); catch(NumberFormatException nfe) System.out.println(输入格式错误。 i = -1; while( i12 ); switch(i) case 1:System.out.println(1月份有31天。 break; case 2:2月份有28或29天。break; case 3:3月份有3
5、1天。 case 4:4月份有30天。 case 5:5月份有31天。 case 6:6月份有30天。 case 7:7月份有31天。 case 8:8月份有31天。 case 9:9月份有30天。case 10:10月份有31天。case 11:11月份有30天。default:12月份有31天。 /end of main method/end of class/用Scanner读整数,重写上述程序import java.util.*; public static void main(String args) int i=0; Scanner br =new Scanner(System.i
6、n); do try i= br.nextInt(); catch(InputMismatchException e) br.nextLine();System.out.print(输入格式错误! i = -1; while( i br.close(); switch(i) case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: 例33 利用随机数发生器产生09之间的整数并输出(P44)。class Ch3Ex3 public static void main(String args ) int x = (
7、int)(Math.random( )*10);/0.0Math.random( )1.0随机数x放大10倍后的整数值: + x);switch( x ) case 0:case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:/break;Java的循环语句有三种:(1)while语句(2)do while语句(3)for 语句它的一般格式为:while ( 例34 计算Fibonacci数列前20项的值(P46)。Fibonacci序列的数学定义如下:public class Ch3Ex4 static final int
8、 MAX = 20;public static void main(String args ) int f1=0,f2=1,k=0;Fibonacci数列前20项是: while ( k MAX ) /循环10次 System.out.print(+f1+f2); f1 = f1 + f2; f2 = f1 + f2; k +=2; if (k%4 = 0) System.out.println();/一行4个数 System.out.println();do while ( )例3-5 输入字符,显示其Unicode码,输入#程序结束(P49例3-10)。public class Ch3Ex
9、5 static char c;public static void main(String args) try do输入1个字符并按回车,按#结束 c=(char)System.in.read(); System.in.skip(2) ; /忽略回车及换行符 System.out.println(c+的Unicode的值为:+ (short)c);while (c!=#catch(IOException e)读错误!);程序运行结果如下:输入字符并按回车,按#结束aa的Unicode的值为:97BB的Unicode的值为:66#的Unicode的值为:35for循环的通用格式如下:for (
10、 修正表达式 若循环次数可确定,一般用for语句,当循环次数不能确定一般用do语句或do while语句。例36 把按升序排列的int型数组元素按降序排列。/ Ch3Ex6.javapublic class Ch3Ex6 int a =1,2,3,4,5,6,7,8,9,b; for (int i=0,j=a.length-1; ij; i+,j-) b=ai;ai=aj;aj=b;/循环4次 System.out.println(“Reduced Sorting :”); for (int i=0;a.length-1;i+) System.out.print(ai+” ”);该程序的运行结
11、果为:Reduced Sorting :9 8 7 6 5 4 3 2 1在遍历数组或java.util.Collection时,一般用增强的for循环。一般形式:for(SomeType inst : instArr) 其中,instArr可以是SomeType数组和各种泛型容器(列表、集合、队列等), inst是任意的标识符 SomeType是元素的类型采用增强的for循环(enhanced for loop)来改写上述例程。 static int a =1,2,3,4,5,6,7,8,9,b; for (int i=0,j=a.length-1;i+,j-) for (int eleme
12、nt:a)/JDK1.5上才支持 System.out.print(element+” ”); System.out.println( );例37 编写Application程序找出所有的水仙花数并输出。水仙花数是三位数,它的各位数字的立方和等于这个三位数本身。例如371=33+73+13,371就是一个水仙花数。public class Ch3Ex7 / Ch3Ex7.java 有4个水仙花数 public static void main(String args) int i,j,k,m=1; for (int n=100; n1000;n+)/循环900次 i=n/100; /百位数 k
13、=n%10; /个位数j=(n-i*100)/10; /十位数 if (Math.pow(i,3)+Math.pow(j,3)+Math.pow(k,3)=n)找到第 + m+ + 个水仙花数: + n);找到第1个水仙花数:153找到第2个水仙花数:370找到第3个水仙花数:371找到第4个水仙花数:407break语句、continue语句、return语句等。 Java语言不支持goto语句。1.break语句(1)不带标号的break语句 /用于退出当前的循环语句或switch语句。(2)带标号的break语句其一般形式为:break /语句块的标号带标号的break语句表示跳出标号注
14、明的那个语句块,进入后面的语句。for (.) lable1:for (.) for(.) . break lable1;./该语句序列不被执行 . /该语句序列不被执行 . /该语句序列被执行2.continue语句(1)不带标号的continue语句continue; /结束本次循环,进入下一轮循环。(2)带标号的continue语句continue 标号名;/外层循环语句开始处的标号带标号的continue语句使程序执行流程直接转入标号标明循环的下一轮循环。下面是一个求1到100之间的所有素数(prime)的程序段,使用了带标号的continue语句。完整的源代码见教材P57。firstLoop: for (int i=1;100; for (int j=2;ji;j+) if (i%j= =0) continue firstLoop; System.out.print(i+” ”);3.return 语句使程序执行流程跳转到调用方法处。它的格式如下:return catch( 参数1语句序列1.异常类型n参数n语句序列n finally 下次课交U盘:编写一个字符界面的Application程序,接受用户从键盘输入的10个整数,比较并输出其中的最大值和最小值。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1