1,if-else
if-else
语句是控制程序流程的最基本的形式。
else
是可选的。
if
和
else
后面跟的是用分号结尾的简单语句。下面的
test()
方法简单阐述
if-else
的表现形式及其现象。
public class test {
static int result = 0;
static void test(int number1, int number2){
if(number1 > number2)
result = +1;
else if(number1 < number2)
result = -1;
else
result = 0;
}
public static void main(String[] args) {
test(10, 5);
System.out.println(result);
test(5, 10);
System.out.println(result);
test(5, 5);
System.out.println(result);
}
}
- 输出内容为:
1
-1
0- 其中在
test()
中间部分可以看到一个“
else-if
”,这个是一个else后面紧跟另一个新的
if
语句。
2,迭代
-
while、do-while
和
for
用来控制循环,有时将他们划分为迭代语句。语句会重复执行,知道起控制作用的布尔表达式得到“假”的结果为止。
3,while语句
while
循环语句格式如下:
while(Boolean-expression)
statement
- 当循环开始的时候,会先计算一下布尔表达式的值;而在语句的下一次迭代开始前会再计算一次。也就是说
while
语句在进入循环体之前要先判断条件是否成立,如果成立的话则进入循环体。
例如:
public static void main(String[] args) {
int i=2;
while(i<3){
i+=1;
}
System.out.println(i);
}
- 显然的是输出结果为
3
。
4,do-while
do-while
格式如下:
do
statement
while(Boolean-expression);
- do-while的语句至少会执行一次,即便表达式的值为false。也就是说对于do…while语句,不管条件是否成立都要先执行一遍。
简单示例如下:
public static void main(String[] args) {
int i=2;
do{
i+=1;
}
while(i<3);
System.out.println(i);
}
- 运行结果为
3
。
while循环是先判断后循环 。
do–while循环是先循环后判断。
在实际应用中,while比do-while更常用。
5,for
for
循环可能是最经常用的迭代形式,这种在第一次迭代之前要进行初始化。随后进行条件测试,而在每一次迭代结束时,进行某种形式的“步进”。
for
循环格式如下:
for(initialization;Boolean-expression;step)
statement
初始化表达式、布尔表达式或者步进都可以为空
。每次迭代前会测试布尔表达式。若为
false
,就会执行
for
语句后面的代码,每次执行结束,会执行一次步进。- 在初始化不分实际上可以拥有任意数量的具有相同类型的变量定义。在一个控制表达式中,定义多个变量的这种能力值限于
for
循环适用。
下面是简单示例:
public static void main(String[] args) {
int i;
for(i=0;i<=100;i++){
System.out.println(i+" ");
}
}
- 打印结果为:0~100 这101个数字。
6,Foreach
foreach是一种更加简洁的for语法用于数组和容器,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。
foreach基本语法:
for(float x:f){
}
下面是foreach案例:
public static void main(String[] args){
int[] a = new int[10];
for(int i=0;i<10;i++){
a[i] = i;
}
for(int i:a){
System.out.print(i+" ");
}
}
- 输出结果为:
0 1 2 3 4 5 6 7 8 9
foreach
也适用于任何
Iterable
对象。在录入代码的时候可以节省时间,阅读的时候也比较容易。
7,return
return
关键字有两方面的用途:一方面制定一个方法的返回值(假设它没有
void
返回值),另一方面它会导致当前的方法退出,并返回那个值。
示例如下:
public class test {
static int result = 0;
static void test(int number1, int number2){
if(number1 > number2)
result +1;
else if(number1 < number2)
result -1;
else
result 0;
}
public static void main(String[] args) {
test(10, 5);
test(5, 10);
test(5, 5);
}
}
- 输出内容为:
1
-1
0
如果在
void
的方法中没有
return
语句,那么在该方法的结尾会有一个隐式的return,因此在方法中并非总是要有一个return语句。但是,如果一个方法声明它将返回void之外的其它东西,就必须确保每一条代码都将返回一个值。
8,break和continue
在任何的迭代语句主体部分,都可以用
break
和
continue
控制循环流程。其中
break
用于强行退出循环,不执行循环中剩余的语句。而
continue
则停止执行当前的迭代,然后退出循环起始处,开始下一次迭代。
示例:
public class test1 {
public static void main(String[] args){
for(int i=0;i<100;i++){
if(i==66)
break;
if(i % 9 != 0)
continue;
System.out.print(i+" ");
}
}
- 输出结果为:0 9 18 27 36 45 54 63
- 分析:在整个
for
循环中,
i
的值永远不会达到
100
;因为
i
一旦达到
66
,
break
语句就会中断循环。通常,只有在不知道中断条件何时满足时,才需要这样使用
break
。只要
i
不能被
9
整除,
continue
语句就会使执行过程返回到循环的最开头(这就会使
i
值递增)。如果能够整除,则将值显示出来。
return,break、continue表示这个分支无需任何测试就可以发生。
9,goto语句
goto
起源于汇编语言的程序控制,若条件A成立,则跳到这里;否则跳到那里。这里不做过多阐述。
10,switch
switch
有时也被划归为一种
选择语句
。根据整数表达式的值,
switch
语句可以从一系列代码中选择一段去执行。
格式如下:
switch(integral-selector) {
case integral-value1 : statement;break;
case integral-value2 : statement;break;
case integral-value3 : statement;break;
case integral-value4 : statement;break;
case integral-value5 : statement;break;
...
default: statement;
}
-
integral-selector
(整数选择因子)是一个能够产生整数值的表达式,
switch
能将这个表达式的结果与每个
integral-value
(整数值)进行比较。若相符,执行对应语句(单一语句或者多条语句,不需要括号)。若没有相符的,执行
default
(默认)语句。 -
上面每个
case
以
break
结尾,这样可以使执行流程跳转至
switch
主题的末尾。这是构建
switch
语句的一种传统方式,但是
break
是可选的。若省略
break
,会继续执行后面的
case
语句,直到一个
break
为止。最后的
default
没有
break
语句,因为执行流程默认已经到了
break
的跳转目的地。 -
switch
语句实现多路选择,但它要求选择因子必须是
int
或
char
这样类型的整数值。对于非整数类型,则必须使用一系列的
if
语句。 -
switch
运用:
public class test1 {
public static void main(String[] args){
int x = 1, y = 2;
char ch = '+';
switch (ch) {
case '+':
System.out.println("x+y=" + (x + y));
break;
case '-':
System.out.println("x-y="+(x-y));
break;
case '*':
System.out.println("x*y="+(x*y));
break;
case '/':
System.out.println("x/y="+(x/y));
break;
default:
System.out.println();
}
}
- 运行结果为:
x+y=3
case
语句可以堆叠在一起,为一段代码形成多重匹配,也就是只要符合多种条件的一种,就执行那段特别的代码。这时要将
break
语句置于特定
case
的末尾,否则控制流程会简单下移,处理下面的
case
。