选择结构
if单选择结构
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示:

if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
意义:if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句。
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//接收用户输入
System.out.print("请输入内容:");
String s = scanner.nextLine();
if (s.equals("Hello")){ //equals是用来比较字符串是否一致的
System.out.println("输入的是:"+s);
}
System.out.println("End");
scanner.close();
}
if双选择结构
if(布尔表达式){
//如果布尔表达式的值为true
}else{
//如果布尔表达式的值为false
}

package Demo;
import java.util.Scanner; //导入Scanner类
public class Hello {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scan.nextInt();
if (score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
scan.close();
}
}
if多选择结构
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}

一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
package Demo;
import java.util.Scanner; //导入Scanner类
public class Hello {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scan.nextInt();
if (score == 100) {
System.out.println("S级");
} 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 < 70 && score >= 60) {
System.out.println("D级");
} else if (score < 60 && score >= 0) {
System.out.println("不及格");
} else {
System.out.println("非法操作");
}
scan.close();
}
}
嵌套的if结构
使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if...else。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个数字:");
double num = scan.nextDouble();
if (num % 2 == 0) {
if (num % 3 == 0){
System.out.println("你输入的数字可以被2和3整除");
}else{
System.out.println("你输入的数字能被2整除,但不能被3整除");
}
}else {
if (num % 3 ==0){
System.out.println("你输入的数字能被3整除,但不能被2整除");
}else{
System.out.println("你输入的数字不能被2整除,也不能被3整除");
}
}
scan.close();
}
switch多选择结构
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
switch case 语句有如下规则:
- switch 语句中的变量类型可以是:byte、short、int或者char。从JavaSE 7开始switch支持字符串 String类型,同时case标签必须为字符串常量或字面量。
- case语句中的值(即标签如case 'A'中的'A')的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
- 当变量的值与case语句的值相等时,那么case语句之后的语句开始执行,直到break语句出现才会跳出switch语句。
- 当遇到break语句时,switch语句终止。程序跳转到switch语句后面的语句执行。case语句必须要包含break语句。如果没有break语句出现,程序会继续执行下一条case语句,直到出现break语句。这种情况即case穿透。
- switch语句可以包含一个default分支,该分支一般是switch语句的最后一个分支(可以在任何位置,但建议在最后一个)。default在没有case语句的值和变量值相等的时候执行。default分支不需要break语句。
public class Hello {
public static void main(String[] args) throws Exception{
System.out.println("请输入你的评级:");
char grade=(char)System.in.read(); //Scanner不方便输入单个字符,换in.read方法
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("Unknown");
}
}
JDK7增加了字符串表达式
public class Hello {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
System.out.println("请输入暗号:");
String sign = scan.next();
switch (sign){
case "已婚":
System.out.println("陈睿");
break;
case "648":
System.out.println("氪不改命");
break;
case "臭死了":
System.out.println("114514");
break;
case "黑暗降临":
System.out.println("MIHOYO");
break;
default:
System.out.println("Unknown");
}
scan.close();
}

浙公网安备 33010602011771号