Java流程控制
Java流程控制的語法與 C/C++ 類似,也有 if...else、while、do...while、for、switch...case等,這里不再講述具體語法,僅舉例說明。
輸出九九乘法表(右上三角):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public class Demo { public static void main(String[] args){ int i, j; for (i= 1 ; i<= 9 ; i++){ for (j= 1 ; j<= 9 ; j++){ if (j<i){ //打印八個空格,去掉空格就是左上三角形 System.out.print( " " ); } else { System.out.printf( "%d*%d=%2d " , i, j, i*j); } } System.out.print( "\n" ); } } } |
運行結果:
1
2
3
4
5
6
7
8
9
|
1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9 2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18 3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45 6*6=36 6*7=42 6*8=48 6*9=54 7*7=49 7*8=56 7*9=63 8*8=64 8*9=72 9*9=81 |
Java中也有 printf() 語句,用來控制輸出格式,不過實際開發(fā)中不常用,因為輸出到控制臺的數(shù)據(jù)很少要求嚴格的格式,一般 println() 和 print() 就夠了。
println() 輸出內容后換行,print() 不換行。
又如,求某一年的某一月有多少天:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import java.util.*; public class Demo { public static void main(String[] args){ int days = 0 ; // 獲取用戶輸入 Scanner sc = new Scanner(System.in); System.out.print( "輸入年份:" ); int year = sc.nextInt(); System.out.print( "輸入月份:" ); int month = sc.nextInt(); switch (month){ case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : days= 31 ; break ; case 4 : case 6 : case 9 : case 11 : days= 30 ; break ; case 2 : // 判斷閏年 if (year% 4 == 0 && year% 100 != 0 || year% 400 == 0 ) days= 29 ; else days= 28 ; break ; default : System.out.println( "月份輸入錯誤!" ); System.exit( 0 ); // 強制結束程序 } System.out.printf( "天數(shù):%d\n" , days); } } |
運行結果:
1
2
3
|
輸入年份:2014 輸入月份:02 天數(shù):28 |
Java中沒有像C語言中的scanf()語句,從控制臺獲取輸入有點麻煩,我推薦使用 Scanner 類,具體語法請大家自行查看API。
Java運算符
Java中的運算符和C/C++相差無幾。
數(shù)學運算符
數(shù)學運算,結果為一個數(shù)值。見下表:
關系運算符
關系運算符,結果為一個布爾值。見下表:
位運算符
位運算符對整數(shù)的二進制形式逐位進行邏輯運算,得到一個整數(shù)。見下表:
條件運算符
Java中也有一個條件運算符(三目運算符):
1
|
condition ? x1 : x2 |
condition為一個boolean值。根據(jù)condition,取x1或x2的值。
下面是關于運算符的一個綜合舉例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public class Demo { public static void main(String[] args){ int a= 10 ; int b= 10 ; int x= 10 ; int y= 21 ; int z= 10 ; System.out.println( "后自加 a=" + (a++)); System.out.println( "a的值 a=" + a); System.out.println( "前自加 b=" + (++b)); System.out.println( "---------------------" ); System.out.println( "說 x>y,對嗎?" + (x>y)); System.out.println( "認為 x>y 并且 x<y,對嗎?" + ( (x>y) && (x<y) )); System.out.println( "認為 x>=y 或者 x==y,對嗎?" + ( (x>=y) || (x==y) )); System.out.println( "認為 x<y 或者 x=z,對嗎?" + ( (x<y) || (x==z) )); System.out.println( "---------------------" ); System.out.println( "a&x 的結果是:" + (a&x)); System.out.println( "a|x 的結果是:" + (a|x)); System.out.println( "y^z 的結果是:" + (y^z)); System.out.println( "---------------------" ); System.out.println( "a 左移2位的結果是:" + (a<< 2 )); System.out.println( "y 右移3位的結果是:" + (y>> 3 )); } } |
運行結果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
后自加 a= 10 a的值 a= 11 前自加 b= 11 --------------------- 說 x>y,對嗎? false 認為 x>y 并且 x<y,對嗎? false 認為 x>=y 或者 x==y,對嗎? false 認為 x<y 或者 x=z,對嗎? true --------------------- a&x 的結果是: 10 a|x 的結果是: 11 y^z 的結果是: 31 --------------------- a 左移 2 位的結果是: 44 y 右移 3 位的結果是: 2 |