选择结构
if单选择结构
IfDemo01
package struct;
import java.util.Scanner;
public class IfDemo01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个内容:");
String s=scanner.nextLine();
//equals 判断字符串是否相等
if (s.equals("hello")){
System.out.println(s);
}
System.out.println("End");
scanner.close();
}
}
if双选择结构
IfDemo02
package struct;
import java.util.Scanner;
public class IfDemo02 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score>60){
System.out.println("成绩及格");
}else{
System.out.println("成绩不合格");
}
scanner.close();
}
}
if多选择结构
-
我们发现刚才的代码不符合实际情况,真实的情况还可能存在ABCD,存在区间多级判断,比如90100就是A,8090就是B,等等,在生活中我们很多时候的选择也不仅仅只有两个,所以我们需要一个多选择结构来处理这类问题。
-
语法:
if(布尔表达式1){ //如果布尔表达式 1的值为true执行代码 }else if(布尔表达式 2){ //如果布尔表达式 2的值为true执行代码 }else if(布尔表达式 3){ //如果布尔表达式 3的值为true执行代码 }else{ //如果以上布尔表达式值都不为true执行代码 }
IfDemo03
package struct;
import java.util.Scanner;
public class IfDemo03 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
/*
if 语句可至多有1个else语句,else语句在所有的else if 语句之后。
if 语句可以有若干个else if语句,他们必须在else语句之前
一旦其中一个else语句检测为true,其他的else if以及else语句即将跳过执行。
*/
System.out.println("请输入成绩:");
int score=scanner.nextInt();
if (score==100){
System.out.println("恭喜满分");
}else if (score<100&&score>=90){
System.out.println("A级");
}else if (score<90&&score>=80){
System.out.println("B级");
}else if (score<80&&score>=70){
System.out.println("C级");
}else if (score<60){
System.out.println("不合格");
}else {
System.out.println("成绩不合法");
}
scanner.close();
}
}
嵌套的if结构
-
使用嵌套的if…else语句是合法的。也就是说你可以在另一个i f 或者else if 语句使用 if 或者else if语句。你可以想i f 语句一样嵌套 else if…else。
-
语法:
if(布尔表达式 1){ //如果布尔表达式 1结果为true 则执行代码 if(布尔表达式 2){ //如果布尔表达式 2 结果为true 则执行代码 } }
switch多选择结构
-
switch 语句中的变量类型可以是:
byte、short、int或者 char。
从JavaSE7开始
switch 支持字符串 String类型了
同时case标签必须为字符串常量或者字面量。
SwitchDemo01
package struct; public class SwitchDemo01 { public static void main(String[] args) { //case 穿透 switch 匹配一个具体的值 char grade='c'; switch (grade){ case 'A': System.out.println("优秀"); break; case 'B': System.out.println("良好"); break; case 'C': System.out.println("及格"); break; case 'D': System.out.println("不及格"); break; default: System.out.println("未知等级"); break; } } }
SwitchDemo02
package struct; public class SwitchDemo02 { public static void main(String[] args) { String name="芭"; //表表达式可以是字符串 //字符的本质还是数字 switch (name){ case "源氏": System.out.println("源氏z"); break; case "麒麟": System.out.println("麒麟"); break; default: System.out.println("What are you 弄啥嘞"); } } }