java流程控制之选择结构
- if单选择结构:我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表达。
语法为:
if(布尔表达式){
// 为true执行语句
}
- if双选择结构:两个判断,if-else。
语法为:
if(布尔表达式){
// 为true执行语句
}else{
//为false执行语句
}
判断字符串:
import java.util.Scanner;
public class Demo1 {
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);
} else {
System.out.println("END");
scanner.close();
}
}
}
判断数字:
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args){
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等(存在区间多级判断)。在生活中我们很多时候的选择也不仅仅只有两个。
语法为:
if(布尔表达式1){
// 为true执行语句
}else if(布尔表达式2){
//1false 2true执行语句
}else if(布尔表达式3){
//12false 3true执行语句
}
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.println("请输入成绩:");
int score=scanner.nextInt();
if(score>=90){
System.out.println("A");
}else if(score>=80 && score<90){
System.out.println("B");
}else if(score>=60 && score<80){
System.out.println("C");
}else if(score<60){
System.out.println("D");
}
}
}
- 嵌套的if结构:使用嵌套的if……else语句是合法的。也就是可以在另一个if或else if语句中使用if或else if语句。
语法为:
if(布尔表达式1){
// 1为true执行语句
if(布尔表达式2){
//2为true执行语句
}
}
- switch多选择结构:switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
- switch语句中的变量类型可以是:
- byte、short、int或char
- 支持字符串String类型(JavaSE7开始)
- case标签必须为字符串常量或字面量
语句为:
switch(expression){
case value:
//语句
break;//可选
case value:
//语句
break;//可选
//可以有任意数量的case语句
default://可选,在代码中可以没有
//可选
}
我在看到这种选择语句时觉得很像玩游戏时候选择任务那种对话,所以就想用户交互试试:
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.println("请选择:");
char choose=scanner.next().charAt(0);
switch (choose){
case'1':
System.out.println("乐意之至");
break;
case'2':
System.out.println("铭记于心");
break;//如果没有break,则case穿透直接显示输出
default://在上述case''中没有的情况会用default
System.out.println("弄啥嘞!");
}
}
}
浙公网安备 33010602011771号