任何一门语言都需要基本的流程控制语句,其思想也符合人类判断问题或做事的逻辑过程。什么是流程控制呢?流程就是做一件事情的顺序,或者说是次序。在程序设计中,流程就是要完成一个功能,而流程控制则是指如何在程序设计中控制完成某种功能的次序。
Java流程控制语句有条件语句、循环语句、循环控制语句和返回语句。
一、条件语句
条件语句可以根据不同的条件执行不同的语句。Java中条件语句有if条件句和switch多分支语句。
1、if条件语句
(1)、单if语句
语法格式:
if(布尔表达式){
语句体;
}
执行流程:
- 首先判断布尔表达式看其结果是true还是false
- 如果是true就执行语句体
- 如果是false就不执行语句体
例子:
public calss Test {
public static void main(String[] args){
int a = 5; // 声明int型局部变量a,赋值5
int b = 10; // 声明int型局部变量b,赋值10
if(a > b){ // 如果a>b
System.out.println("a大于b"); // 输出a大于b
}
if(a < b){ // 如果a<b
System.out.println("a小于b"); // 输出a小于b
}
}
}
(2)、标准if…else语句
语法格式:
if(布尔表达式){
语句体1;
} else {
语句体2;
}
执行流程:
- 首先判断布尔表达式看其结果是true还是false
- 如果是true就执行语句体1
- 如果是false就执行语句体2
例子:
public calss Test {
public static void main(String[] args){
int money = 123; // 声明int型局部变量moneg,赋值123
if(money > 100){ // 如果money大于100
System.out.println("可以买好多方便面!");
} else { // 条件不成立时,执行的语句块
System.out.println("不够吃方便面了!");
}
}
}
(3)、扩展if…else if语句
语法格式:
if(布尔表达式1){
语句体1;
} else if(布尔表达式2) {
语句体2;
} else if(布尔表达式3) {
语句体3;
}
...
} else if(布尔表达式n) {
语句体n;
} else {
语句体n+1;
}
执行流程:
- 首先判断布尔表达式看其结果是true还是false
- 如果是true就执行语句体1
- 如果是false就继续判断关系表达式2看其结果是true还是false
- 如果是true就执行语句体2
- 如果是false就继续判断关系表达式3看其结果是true还是false
- 如果是true就执行语句体3
- 如果是false就继续判断关系表达式…看其结果是true还是false
- …
例子:
public calss Test {
public static void main(String[] args){
int a = 99; // 声明int型局部变量a并赋值99
if(a >= 100){ // 判断a是否大于等于100
System.out.println("a的值大于等于100");
} else if(a >= 90) { // 判断a是否大于等于90
System.out.println("a的值大于等于90,但小于100");
} else if(a >= 50) { // 判断a是否大于等于50
System.out.println("a的值大于等于50,但小于90");
} else { // 当以上的条件都不成立时,执行的语句块
System.out.println("a的值小于50");
}
}
}
2、switch条件语句
语法格式:
switch(表达式){
case 常量值1;
语句体1;
break;
case 常量值2;
语句体2;
break;
case 常量值3;
语句体3;
break;
...
default;
语句体n+1;
break;
}
执行流程:
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
public class Test {
public static void main(String[] args){
int week = 3;
switch(week){
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
case 3:
System.out.println("Wednesday");
break;
case 4:
System.out.println("Thursday");
break;
case 5:
System.out.println("Friday");
break;
case 6:
System.out.println("Saturday");
break;
case 7:
System.out.println("Sunday");
break;
default:
System.out.println("Sorry,I don't know!");
}
}
}
switch语句使用的注意事项
1.多个case后面的数值不可以重复。
2.switch后面小括号当中只能是下列数据类型:
基本数据类型: byte、short、char、int
引用数据类型:String字符串、enum枚举
3.switch语句格式可以很灵活:前后顺序可以颠倒,而且break语句还可以省略。(匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止。)
二、循环语句
循环语句就是在满足一定条件的情况下反复执行某段程序的流程结构。Java中循环语句有for循环语句、while循环语句和do…while循环语句。
1、for循环语句
语法格式:
for(初始化表达式①;布尔表达式②;步进表达式④){
循环体③;
}
执行流程:
- 执行顺序:①②③④–>②③④–>②③④…②不满足为止。
- ①负责完成循环变量初始化
- ②负责判断是否满足循环条件,不满足则跳出循环
- ③具体执行的语句
- ④循环后,循环条件所涉及变量的变化情况
例子:
public class Test {
public static void main(String[] args){
int sum = 0; // 声明int型局部变量sum,赋值为0
for(int i = 0;i <= 100;i++){
sum = sum + i; // 指定循环条件和循环体
}
System.out.println("sum =" + sum);
}
}
2、while循环语句
语法格式:
初始化表达式①
while(布尔表达式②)
循环体③;
步进表达式④;
}
执行流程:
- 执行顺序:①②③④–>②③④–>②③④…②不满足为止。
- ①负责完成循环变量初始化。
- ②负责判断是否满足循环条件,不满足则跳出循环。
- ③具体执行的语句。
- ④循环后,循环变量的变化情况。
例子:
public class Test {
public static void main(String[] args){
int x = 1;
int sum = 0;
while(x <= 100){
sum = sum + x;
x++;
}
System.out.println("sum =" + sum);
}
}
3、do…while循环语句
语法格式:
初始化表达式①
do {
循环体②;
步进表达式③;
} while(布尔表达式②);
执行流程:
- 执行顺序:①②③④–>②③④–>②③④…②不满足为止。
- ①负责完成循环变量初始化。
- ②负责判断是否满足循环条件,不满足则跳出循环。
- ③具体执行的语句。
- ④循环后,循环变量的变化情况
例子:
public class Test {
public static void main(String[] args){
int date = 1;
do{
System.out.println("一月" + date + "日");
date++;
} while(date <= 31);
}
}
三、循环控制语句
循环控制语句用于实现循环执行过程中控制循环变量的变化方式和控制循环程序流程的跳转。Java语言中循环控制语句有break语句和continue语句。
1、break语句
break语句用来终止循环的进行。
break语句的使用形式:
for(...){
...
break;
...
}
while(...){
...
break;
...
}
do{
...
break;
...
} while(...)
例子:
public class Test {
public static void main(String[] args){
for(int i = 0;i <= 100;i++){
System.out.println(i);
if(i == 10){
break;
}
}
System.out.println("循环结束");
}
}
2、continue语句
continue语句是用来终止当前本次循环,直接进入下一次循环继续执行。
continue语句的使用形式:
for(...){
...
continue;
...
}
while(...){
...
continue;
...
}
do{
...
continue;
...
} while(...)
例子:
public class Test {
public static void main(String[] args){
for(int i = 1;i <= 100;i++){
if(i % 2 == 0){ // 如果i是偶数
continue; // 跳到下一循环
}
System.out.println(i); // 输出i的值
}
}
}
四、返回语句
返回语句是在执行程序的过程中,跳转到另一个程序。一般返回语句用在子程序或程序的函数方法中。返回语句使用关键字return来表示。
return语句总是用在方法中,有两个作用:
1、结束方法的执行,。
例子:
public class Test {
public static void main(String[] args){
System.out.println("return结束了sum方法,返回到主程序中了。");
}
public void sum(int a,int b){ // 定义了一个sum方法
int c = a + b;
return; // return结束了sum方法,返回到主程序中。
}
}
2、返回方法指定类型的值。
例子:
public class Test {
public static void main(String[] args) {
System.out.println(sum(1,2));
}
public static int sum(int a,int b){
int c = a + b;
if (c == 3){
return 5;
/*
判断如果c=3,带着5返回到主程序
*/
}
return c;
}
}