- 流程控制语句:
选择:if...else,switch...case
循环:while,do...while,for
转向控制:break,continue
选择语句
1. if语句
例: OddDecider.java
import java.util.Scanner;
public class OddDecider {
public static void main(String args[]) {
Scanner sca=new Scanner(System.in);
System.out.println("请输入数字:");
int input=sca.nextInt();
int remain=input%2;
if(remain==1)
System.out.println(input+"为奇数");
else
System.out.println(input+"是偶数");
}
}
运行结果:
请输入数字:
99
99为奇数
2. 嵌套if语句
嵌套if语句是指该if语句为另一个if或者else语句的对象。一个else语句总是对应着和它在同一个块中的最近的if语句,而且该if语句没有与其他else语句相关联。
if(i=10){
if(j<20)
a=b;
if(k>100)
c=d;
}
else
a=d;
3.if-else-if 阶梯
基于嵌套if语句的通用编程结构被称为if-else-if阶梯。
例:ifelsedemo.java
public class ifelsedemo {
public static void main(String args[]) {
int month=4;
String season;
if(month==12||month==1||month==2)
season="winter";
if(month==3||month==4||month==5)
season="spring";
if(month==6||month==7||month==8)
season="summer";
if(month==9||month==10||month==11)
season="autumn";
else
season="bogus month";
System.out.println("april is in the"+season+".");
}
}
运行结果:
april is in thebogus month.
4. swith语句
switch语句的执行过程:表达式的值与每个case语句中的常量作比较,如果发现了一个与之匹配的,则执行case语句后的代码。如果没有一个case常量与表达式的值相匹配,则执行default语句。default语句可选。
例:sampleswitch.java
public class sampleswitch {
public static void main(String args[]) {
for(int i=0;i<6;i++)
switch(i) {
case 0:
System.out.println("i=0");
break;
case 1:
System.out.println("i=1");
break;
case 2:
System.out.println("i=2");
break;
case 3:
System.out.println("i=3");
break;
default:
System.out.println("i大于3");
}
}
}
运行结果:
i=0
i=1
i=2
i=3
i大于3
i大于3
break语句是可选的,如省略了break语句,程序将执行下一个case语句,有时多个case语句之间没有break语句。
循环语句
1. while语句
例:whiledemo.java
public class whiledemo {
public static void main(String args[]) {
int n=10;
while(n>0) {
System.out.println("tick "+n);
n--;
}
}
}
运行结果:
tick 10
tick 9
tick 8
tick 7
tick 6
tick 5
tick 4
tick 3
tick 2
tick 1
2. do-while循环语句
先执行循环体,再计算表达式
3. for 循环
for(初始语句;逻辑表达式;迭代语句){
语句块;
}
4. 嵌套循环
例:nested.java
public class nested {
public static void main(String args[]) {
int i,j;
for(i=0;i<10;i++) {
for(j=i;j<10;j++)
System.out.print("*");
System.out.println();
}
}
}
运行结果:
**********
*********
********
*******
******
*****
****
***
**
*
跳转语句
- Java支持三种跳转语句:break、continue、return。
1.break语句
break语句一般在switch语句中,用来终止一个语句序列或用在循环结构中,用来退出一个循环。
1)使用break退出循环
可以使用break语句直接强行退出循环。
例:breakdemo.java
public class breakdemo {
public static void main(String args[]) {
for(int i=0;i<100;i++) {
if(i==10)break;
System.out.println("i="+i);
}
}
}
运行结果:
i=0
i=1
i=2
i=3
i=4
i=5
i=6
i=7
i=8
i=9
2) 带标签的break
通过使用带标签的break,可以终止一个或者几个代码块。
例:break2.java
public class break2 {
public static void main(String args[]) {
boolean t=true;
first:{
second:{
third:{
System.out.println("before the break");
if(t) break second; //终止第二个语句体
System.out.println("this won't execute");
}
System.out.println("this won't execute");
}
}
System.out.println("this is after second block");
}
}
运行结果:
before the break
this is after second block
2. continue语句
1)不带标号的continue语句
continue语句使控制直接转移给控制循环的额条件表达式,然后继续循环过程。
例:continuedemo.java
public class cuntinuedemo {
public static void main(String args[]) {
for(int i=0;i<10;i++) {
System.out.print(i+"");
if(i%2==0)
continue;
System.out.println("");
}
}
}
运行结果:
01
23
45
67
89
2)带标号的continue语句
带标号的continue语句多用在多层循环结构中,而标号名应该在程序外侧给循环语句的前面,用来标志这个循环结构。
例:continueexample.java
public class continueexample {
public static void main(String args[]) {
loop:for(int i=1;i<20;i++) {
for(int j=2;j<i;j++) {
if((i%j)==0)
continue loop;
}
System.out.println("i="+i);
}
}
}
运行结果:
i=1
i=2
i=3
i=5
i=7
i=11
i=13
i=17
i=19
3. return语句
return语句用来明确从一个方法返回,使程序控制返回到调用它的方法处。
例:returndemo.java
public class returndemo {
public static void main(String args[]) {
boolean t=true;
System.out.println("before the return");
if(t)
return;
System.out.println("this won't execute");
}
}
运行结果:
before the return