5.1 顺序与选择结构
5.1.1 顺序结构
顺序结构是程序中最简单、最基本的流程控制结构,它按照程序中语句出现的先后顺序依次执行,直到程序的结束。
顺序结构示例:
public class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}//上述程序中,只有一条语句`System.out.println("Hello, World!");`,它按照顺序执行,输出"Hello, World!"。
5.1.2 选择结构
选择结构又叫分支结构,是根据条件表达式的值来决定程序的执行路径。Java语言提供了两种选择结构:if语句和switch语句。
5.1.2.1 if语句
if语句用于根据条件的真假来决定程序的执行路径。if语句有三种形式:if语句、if-else语句和if-else if-else语句。
if语句:if语句用于根据条件表达式的值来决定是否执行某段代码。如果条件表达式的值为true,则执行if语句块中的代码;如果条件表达式的值为false,则不执行if语句块中的代码。
1.单分支结构
if (条件表达式) {// 条件为真时执行的代码块
}
示例:
int num = 10;
if (num > 0) {System.out.println("num是正数");
}
System.out.println("程序结束");
2.双分支结构
if (条件表达式) {// 条件为真时执行的代码块
} else {// 条件为假时执行的代码块
}
示例:
int num = 10;
if (num > 0) {System.out.println("num是正数");
}
else {System.out.println("num是负数");
}
System.out.println("程序结束");
3.多分支结构
if (条件表达式1) {// 条件1为真时执行的代码块
} else if (条件表达式2) {// 条件2为真时执行的代码块
} else if (条件表达式3) {// 条件3为真时执行的代码块
} else {// 所有条件都为假时执行的代码块
}
示例:
int num = 10;
if (num > 0) {System.out.println("num是正数");
}
else if (num < 0) {System.out.println("num是负数");
}
else {System.out.println("num是零");
}
System.out.println("程序结束");
多分支结构典型应用,求一元二次方程的根。中国古代数学家秦九韶提出了“秦九韶算法”,该算法可以用来求解一元二次方程。一元二次方程的一般形式为:ax2+bx+c=0,其中a、b、c为常数,且a≠0。根据判别式b2-4ac的值,可以判断方程的根的情况:
import java.util.Scanner;Scanner input = new Scanner(System.in);System.out.print("请输入a的值:");double a = input.nextDouble();System.out.print("请输入b的值:");double b = input.nextDouble();System.out.print("请输入c的值:");double c = input.nextDouble();double delta = b * b - 4 * a * c;if (delta >1e-6 ) {double x1 = (-b + Math.sqrt(delta)) / (2 * a);double x2 = (-b - Math.sqrt(delta)) / (2 * a);System.out.println("方程有两个实根:x1=" + x1 + ",x2=" + x2);} else if (delta == 0) {double x = -b / (2 * a);System.out.println("方程有一个实根:x=" + x);} else {double realPart = -b / (2 * a); // 实部
if(1/(10^6)==0.0){System.out.println("1/(10^6)等于0");
}
5.1.2.2 switch语句
switch语句用于根据表达式的值来选择执行不同的代码块。switch语句有三种形式:switch语句、switch-case语句和switch-case-default语句。