javaSE10-流程控制
在程序中,程序运行的流程控制决定着程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句:顺序控制、分支控制、以及循环控制。
1.顺序控制
1.1 示意图
java的默认基本结构就是顺序结构,即程序由上而下逐行地执行,中间没有任何判断和跳转。程序执行流程图如下:
1.2 举例及注意事项
java中定义变量时采用合法的前向引用。
public class Text{
public static void main (String[] args){
//正确形式,先定义再使用
int num1 = 1;
int num2 = num1 + 1;
//错误形式
int num4 = num3 + 1; //错误,使用num3时 num3还未定义
int num3 = 1;
}
}
2.分支控制 if-else
让程序有选择的进行,分为单分支、双分支、多分支三种类型。
2.1单分支
单分支控制运行示意图如下所示:
2.1.1 语法结构
public class ifDemo01 {
public static void main (String[] args){
// 单分支 if
if (布尔表达式){
//如果布尔表达式为true将执行的语句
代码块1
}
}
}
2.1.2 案例
使用Scanner扫描器接受用户输入的信息,如果用户输入信息则将其打印出来。
import java.util.Scanner;
public class ifDemo02 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您想说的话:");
// 判断用户是否输入了信息
if (scanner.hasNextLine()){
// 如果是则将其打印出来
String str = scanner.nextLine();
System.out.println("输出的内容为:"+str);
}
scanner.close();
}
}
2.2 双分支
当有两个判断时,可以使用双分支控制(if else),运行原理如下:
2.2.1 语法结构
public class Text{
public static void main (String[] args){
// 双分支 if-else
if (布尔表达式){
//如果布尔表达式为true 将执行的语句
代码块1
}
else {
//如果布尔表达式为false 将执行的语句
代码块2
}
}
}
2.2.2 案例
来看看谁是世界上最帅的人。
import java.util.Scanner;
public class ifDemo03 {
public static void main(String[] args) {
Scanner scannr = new Scanner(System.in);
System.out.println("谁是世界上最帅的人:");
String s = scannr.nextLine();
// equals 判断字符串是否相当
if (s.equals("锅里飞") ){
System.out.println("真有眼光!"+ " " + s +" " +"最厉害。");
}
else System.out.println("你好好反思一下!");
scannr.close();
}
}
2.3 多分支
拥有多个选择时,可使用多分支控制,关键字 (if else if else),多分支控制只能有一个运行入口,运行原理如下:
2.3.1 语法结构
public class Text{
public static void main (String[] args){
// 多分支 if-else if -else
if (布尔表达式1){
//如果布尔表达式1为true 将执行的语句
语句代码块1
}
else if (布尔表达式2){
//如果布尔表达式2为true 将执行的语句
语句代码块2
}
else {
//如果均不为上述情况 将执行的语句
语句代码块n
}
}
}
2.3.2 案例
根据用户输入的成绩判断成绩等级。
import java.util.Scanner;
public class ifDemo04 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的成绩:");
Double score = scanner.nextDouble();
if (score<60 && 0<=score){
System.out.println("成绩不合格!");
}
else if (60<= score && score <80){
System.out.println("成绩合格!");
}
else if (80<= score && score <90){
System.out.println("成绩良好!");
}
else if (90<= score && score <100){
System.out.println("成绩优秀!");
}
else if (score ==100){
System.out.println("真棒,满分!");