选择结构
If选择结构
If单选择结构
if(布尔值表达式){
//如果布尔表达式为true将执行的语句
}
![]()
public class DemoTest06 {
public static void main(String[] args) {
int a=66;
Scanner scanner = new Scanner(System.in);
int b=scanner.nextInt();
if (b==a) {
System.out.println("两者相等");
}
System.out.println("End");
scanner.close();
}
}
//数字判断
public class DemoTest07 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String a= scanner.nextLine();
if (a.equals("Hello,you are so handsome!")){//在字符串中,相等的含义使用单词equals
System.out.println(a);
}
System.out.println("End");
scanner.close();
}
}
//字符串判断
If双选择结构
- 比如:如果成功注册,需要支付一万元定金;如果注册失败,需要重新注册
if(布尔表达式){
//如果布尔值为ture
}else{
//如果布尔值为false
}
![]()
public class DemoTest06 {
public static void main(String[] args) {
int a=66;//也可以不先定义这个,在下面写if(b=66)即可
Scanner scanner = new Scanner(System.in);
int b=scanner.nextInt();
if (b==a) {
System.out.println("两者相等");
}else{
System.out.println("两者不相等");
}
scanner.close();
}
}
If多选择结构
if(布尔表达式1){
//如果布尔值表达式1的值为true执行代码
}else if(布尔表达式2){
//如果布尔值表达式2的值为true执行代码
}else if(布尔表达式3){
//如果布尔值表达式3的值为true执行代码
}
package Flowcontro;
import java.util.Scanner;
public class DemoTest08 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a=scanner.nextInt();
if(a<=100&&a>=90){//此处需要使用逻辑运算符设计区间
System.out.println("该生成绩为A+");
}else if(a<90&&a>=60){
System.out.println("该生成绩为B+");
}else if(a>=0&&a<60){
System.out.println("该生成绩为F");
}else{
System.out.println("成绩不合法");//一定要逻辑严谨,成绩有头有尾
}
scanner.close();
}
}
注意点
- if语句至多有一个else语句,else语句在所有的else if语句之后
- if语句可以有若干个else if语句,他们必须在else语句之前
- 一旦其中一个else if语句检测为true,其他的else if以及else语句都将跳过执行
嵌套If语句
//语法
if(布尔表达式1){
//如果布尔表达式1为true执行代码
if(布尔表达式2){
//如果布尔表达式2为true执行代码
}
}
Switch多选择结构
- 实现方式为switch case语句
- switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
可使用类型
- byte / short / int /char
- 从Java SE7开始,支持字符串String类型了
- case标签必须为字符串常量或者字面量
//语法
switch(expression){
case value1 :
//语句
break;//可选
case value2 :
//语句
break;//可选
//你可以有任意数量的case语句
default ://可选
//语句
}
package Flowcontro;
import java.util.Scanner;
public class DemoSwitch07 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
char a=scanner.next().charAt(0);//关于scanner能获取char类型的代码(详细见拾荒记)
switch (a){
case 'A' :
System.out.println("优秀");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case 'B':
System.out.println("良好");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case 'C':
System.out.println("较差");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case 'D':
System.out.println("合格");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case 'E':
System.out.println("不及格");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
default:
System.out.println("等级非法");
}
scanner.close();
}
}
- 由于Java SE7之后可以使用字符串,可直接用字符串改进上述代码
package Flowcontro;
import java.util.Scanner;
public class DemoSwitch07 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String a=scanner.next();
switch (a){
case "A" :
System.out.println("优秀");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case "B":
System.out.println("良好");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case "C":
System.out.println("较差");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case "D":
System.out.println("合格");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
case "E":
System.out.println("不及格");
break;//case具有穿透现象,必须在每一个case后面加一个break避免穿透
default:
System.out.println("等级非法");
}
scanner.close();
}
}