JAVA语言程序结构
一、顺序结构
程序的基本结构包括顺序结构、分支结构和循环结构。顺序结构按照语句的书写次序顺序执行。选择结构根据条件是否满足来选择执行对应的程序段,Java语言提供了if和switch语句用来开发分支结构的程序。循环结构在给定条件下重复执行一些程序段,Java语言提供了while、do-while、for语句实现循环结构。
二、分支结构
程序中有些程序段的执行是有条件的,当条件成立时,执行一些程序段,当条件不成立时执行另一些程序段或者不执行,这种结构称为分支结构,也叫选择结构。
1、单分支if语句
单一的if语句是最常用的单分支结构,使用一个布尔表达式进行条件判断。如果布尔表达式的值为true,表示条件满足,则执行if语句后面紧跟的{}中的代码块。
单分支if
语句的语法格式如下:
if (布尔表达式) {
*// 如果布尔表达式为true将执行的语句*
}
下面是一个示例:
public class Test {
public static void main(String[] args) {
int num1 = 10;
if (num1 < 20) {
System.out.println("这是 if 语句块中的代码");
}
}
}
2、双分支if…else语句
双分支if…else语句,使用一个布尔表达式进行条件判断。如果布尔表达式的值为true
,表示条件满足,则执行if
语句后面紧跟的{}
中的代码块,如果布尔表达式的值为false
,表示条件不满足,则执行else
后面紧跟的{}
中的代码块。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShENrtIu-1627029699997)(https://i.bmp.ovh/imgs/2021/03/d6b7c45d239b01bb.png)]
双分支if...else
语句的语法格式如下:
if (布尔表达式) {
*// 如果布尔表达式为true将执行的语句*
} else {
*// 如果布尔表达式为false将执行的语句*
}
下面是一个示例:
package cn.youchuang.kc;
import java.util.Scanner;
public class Suanshu {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int zsScore,lsScore;
System.out.println("请输入学生张三的成绩");
zsScore=input.nextInt();
System.out.println("请输入学生李四的成绩");
lsScore=input.nextInt();
if (zsScore>lsScore){
System.out.println("学生张三被选为三好学生");
}else {
System.out.println("学生李四被选为三好学生");
}
}
}
3、嵌套的if…else语句
if
语句后面紧跟的{}
中的代码块中和else
后面紧跟的{}
中的代码块中,都可以继续嵌套if...else
语句,用以完成更复杂的分支结构。
下面是一个示例:
public class Test {
public static void main(String[] args) {
/*
判断闰年的逻辑:
整百的年份可以被400整除,为闰年,否则不是;其他年份被4整除为闰年,否则不是
*/
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
if (year % 100 == 0) {
if (year % 400 == 0) {
System.out.println(year + " 是闰年");
} else {
System.out.println(year + " 不是闰年");
}
} else {
if (year % 4 == 0) {
System.out.println(year + " 是闰年");
} else {
System.out.println(year + " 不是闰年");
}
}
}
}
4、多分支if…else if…else语句
当判断条件比较多时,可以使用多分支if...else if...else
语句。
多分支if...else if...else
语句的语法格式如下:
if (布尔表达式1) {
// 如果布尔表达式1为true将执行的语句
} else if (布尔表达式2) {
// 如果布尔表达式2为true将执行的语句
} else if (布尔表达式3) {
// 如果布尔表达式3为true将执行的语句
} [else {
// 以上分支都没有进入时将执行的语句
}]
下面是一个示例:
package cn.youchuang.kc;
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩");
int score =scanner.nextInt();
if (score >=90) {
System.out.println("成绩为A");
}else if (score>=80){
System.out.println(" 成绩为B");
}else if (score >= 70) {
System.out.println("成绩为C");
}else if (score >= 60) {
System.out.println("成绩表为D");
}else{
System.out.println("成绩为E");
}
}
}
说明:
- 在多分支if…else if…else语句中,当某一个作为判断条件的布尔表达式返回true时,即进入对应分支,之后其他分支中的布尔表达式不再进行运算,分支中的语句也不会被执行。
- 在多分支if…else if…else语句中,else if语句可以出现多次,最后的else语句是可选项。
5、switch语句
对于Java中的多分支结构,除了使用多分支if…else if…else语句外,还可以使用switch语句,switch语句能够根据给定的表达式的值,从多个分支中选择一个分支来执行。相当于if…else if…else语句,switch语句可读性更强。
switch语句的语法格式如下:
switch (表达式) {
case 常量1:
语句1;
Break;
case 常量2:
语句2;
Break;
[...]
[default:
语句n;]
}
下面是一个示例:
说明:
- 表达式返回结果的数据类型可以是byte、char、short、int、enum、String。
- case语句可以出现多次。
- break语句和default语句是可选项。
- switch语句首先计算表达式的值,如果表达式的值和某个case语句后面的常量值相等,就执行该case对应的语句块,直到遇到break语句为止,没有遇到break语句的话,会继续执行后续的case语句对应的语句块,直到遇到break语句为止。如果没有一个常量值与表达式的值相等,则执行default语句对应的语句块。如果没有default语句,switch语句不执行任何操作。
可选项。 - switch语句首先计算表达式的值,如果表达式的值和某个case语句后面的常量值相等,就执行该case对应的语句块,直到遇到break语句为止,没有遇到break语句的话,会继续执行后续的case语句对应的语句块,直到遇到break语句为止。如果没有一个常量值与表达式的值相等,则执行default语句对应的语句块。如果没有default语句,switch语句不执行任何操作。