流程控制
if结构
基本if结构
if(布尔表达式){
//代码块1
}
执行流程:
对布尔表达式进行判断。
结果为true,则先执行代码块1,再执行后续代码。
结果为false,则跳过代码块1,直接执行后续代码。
package com.atguigu.test4;
import java.util.Scanner;
/**
* @author WHD
* @description TODO
* @date 2023/7/29 15:17
* 需求:提示用户输入年龄 根据年龄判断 用户是否成年
*/
public class TestIfInputAge {
public static void main(String[] args) {
// 将光标移动到Scanner单词结尾 alt + 回车 导包(注意不要选错)
Scanner input = new Scanner(System.in);
System.out.println("请输入您的年龄");
int age = input.nextInt();
if(age >= 18){
System.out.println("恭喜你,成年了");
}
System.out.println("程序结束");
}
}
if else结构
if(布尔表达式){
//代码块1
}else{
//代码块2
}
对布尔表达式进行判断。
结果为true,则先执行代码块1,再退出整个结构,执行后续代码。
结果为false,则先执行代码块2,再退出整个结构,执行后续代码。
示例
使用if-else结构 根据用户输入的分数判断是否可以获得奖励
import java.util.Scanner;
/**
* @author WHD
* @description TODO
* @date 2023/7/29 15:21
* 需求:使用if-else结构 根据用户输入的分数判断是否可以获得奖励
*
*
* 如果
* java成绩大于90分 并且 数据库成绩大于80分
* 或者
* css成绩大于85 并且 js成绩等于100分
* 获得奖励苹果14袋
*/
public class TestIfElseInputScore {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("请输入java成绩");
double javaScore = input.nextDouble(); // 这里可以接收int类型的整数 将实现自动类型提升
System.out.println("请输入数据库成绩");
double dbScore = input.nextDouble();
System.out.println("请输入css成绩");
double cssScore = input.nextDouble();
System.out.println("请输入js成绩");
double jsScore = input.nextDouble();
if((javaScore > 90 && dbScore > 80) || (cssScore > 85 && jsScore == 100)){
System.out.println("奖励苹果14袋");
}else{
System.out.println("继续加油~");
}
System.out.println("程序结束");
}
}
对条件的顺序
但是推荐写为升序的 因为阅读性更高
多重if结构
if(布尔表达式1){
//代码块1
}else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}else{
//代码块4
}
执行流程:
表达式1为true,则执行代码块1,再退出整个结构。
表达式2为true,则执行代码块2,再退出整个结构。
表达式3为true,则执行代码块3,再退出整个结构。
以上均为false,则执行代码块4,再退出整个结构。
注意:相互排斥,有一个为true,其他均不再执行,
适用于区间判断
示例1
使用多重if实现根据分数进行等级判断
分数大于90分 优秀
分数大于80分 良好