一、顺序控制
1、介绍
程序从上到下逐行地执行,中间没有任何判断和跳转。
2、注意事项
public static void main(String[] args) {
int num1 = 12;
int num2 = num1 + 2;//正确 向前引用原则
}
public static void main(String[] args) {
int num2 = num1 + 2;
int num1 = 12;//错误
}
二、分支控制if-else
1、介绍
让程序有选择的执行,分支控制有三种:单分支、双分支、多分支
1)单分支
###基本语句
if(条件表达式){
执行代码块;(可以有多条语句)
}
说明:当条件表达式为ture时,就会执行 { } 的代码。如果为false,就不执行。
特别说明,如果 { } 中只有一条语句,则可以不用 { } ,建议写上 { } 。
###案例
package com;
import java.util.Scanner;
public class kongzhijiegou {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = myScanner.nextInt();
if (age > 18){
System.out.println("你的年龄已大于18岁,要对你自己的行为负责!");
}
System.out.println("程序继续执行......");
}
}
2)双分支
###基本语法
if(条件表达式){
执行代码块1;
}else{
执行代码块2;
}
说明:当条件表达式成立,即执行代码块1;否则执行代码块2.如果执行代码块 只有一条语句,则 { } 可以省略, 否则不可以
###案例
package com;
import java.util.Scanner;
public class kongzhijiegou {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age = myScanner.nextInt();
if (age > 18){
System.out.println("你的年龄已大于18岁,要对你自己的行为负责!");
}else{
System.out.println("你的年龄为未成年,这次放过你了!");
}
System.out.println("程序继续执行......");
}
}
package com;
import java.util.Scanner;
public class IfExercise01 {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入两个数字:");
double num1 = myScanner.nextDouble();
double num2 = myScanner.nextDouble();
if (num1 > 10.0){
if (num2 < 20.0) {
System.out.println(num1 + num2);
}
}
}
}
package com;
import java.util.Scanner;
public class IfExercise01 {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入一个年份:");
double num1 = myScanner.nextDouble();
if((num1 % 4 == 0 && num1 % 100 != 0)|| num1 % 400 == 0){
System.out.println("这年是闰年");
}
}
}
3)多分支
###基本语法
if(条件表达式1){
执行代码块1;
}
else if(条件表达式2){
执行代码块2;
}
......
else{
执行代码块n;
}
特别说明:
(1)多分支 可以没有 else, 如果所有的表达式都不成立,则一个执行的入口都没有
(2)如果有 else,如果所有的条件表达式都不成立,则默认执行else代码块
###案例
package com;
import java.util.Scanner;
public class IfExercise03 {
public static void main(String[] args) {
Scanner myScanner = new Scanner(System.in);
System.out.println("请输入您的信用分:");
int grade = myScanner.nextInt();
if (grade >= 1 && grade <= 100) {
if (grade == 100) {
System.out.println("信用极好");
} else if (grade > 80 && grade <= 99) {
System.out.println("信用优秀");
} else if (grade >= 60 && grade <= 80) {
System.out.println("信用一般");
} else {
System.out.println("信用不及格");
}
}else {
System.out.println("输入的信用分需要在1-100,请重新输入:");
}
}
}