JAVA语言程序结构

一、顺序结构

程序的基本结构包括顺序结构、分支结构和循环结构。顺序结构按照语句的书写次序顺序执行。选择结构根据条件是否满足来选择执行对应的程序段,Java语言提供了if和switch语句用来开发分支结构的程序。循环结构在给定条件下重复执行一些程序段,Java语言提供了while、do-while、for语句实现循环结构。

二、分支结构

程序中有些程序段的执行是有条件的,当条件成立时,执行一些程序段,当条件不成立时执行另一些程序段或者不执行,这种结构称为分支结构,也叫选择结构。

1、单分支if语句

单一的if语句是最常用的单分支结构,使用一个布尔表达式进行条件判断。如果布尔表达式的值为true,表示条件满足,则执行if语句后面紧跟的{}中的代码块。

java 工程 结构 java程序的结构层次是什么_布尔表达式

单分支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语句不执行任何操作。