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() 语句,用来控制输出格式,不过实际开发中不常用,因为输出到控制台的数据很少要求严格的格式,一般 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( "天数:%d\n" , days);
}
}
|
运行结果:
1
2
3
|
输入年份:2014
输入月份:02
天数:28
|
Java中没有像C语言中的scanf()语句,从控制台获取输入有点麻烦,我推荐使用 Scanner 类,具体语法请大家自行查看API。
Java运算符
Java中的运算符和C/C++相差无几。
数学运算符
数学运算,结果为一个数值。见下表:
关系运算符
关系运算符,结果为一个布尔值。见下表:
位运算符
位运算符对整数的二进制形式逐位进行逻辑运算,得到一个整数。见下表:
条件运算符
Java中也有一个条件运算符(三目运算符):
1
|
condition ? x1 : x2
|
condition为一个boolean值。根据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
|