选择结构
if单选择结构
我们很多时候需要去判断一个东西是否可行,确认可行后才去执行,这样一个过程在程序中用if语句来表示。
语法:
if(boolean表达式){
//boolean为ture将执行的语句
}
下面来看一个简单的例子:
public class IfDemo01 {
public static void main(String[] args) {
System.out.println("Please enter your word.");
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String a = "Hello World";
//equals:判断字符串是否相等
if(s.equals(a)){
System.out.println(s);
}
System.out.println("It is end");
scanner.close();
}
}
输出结果1:
Please enter your word.
Hello World
Hello World
It is end
输出结果2:
Please enter your word.
sadas
It is end
if双选择结构
语法:
if(boolean表达式){
//boolean表达式为true
}else{
//boolean表达式为false
}
看一个简单的例子:
/**
* @ClassName IfDemo02
* @Description 考试分数大于60位及格,小于60为不及格
* @Author
* @Date 2021/5/31 21:15
* @Version 1.0
**/
public class IfDemo02 {
public static void main(String[] args) {
System.out.println("Please enter your score.");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
int standard = 60;
if(score>=standard){
System.out.println("Pass");
}else {
System.out.println("No pass");
}
scanner.close;
}
}
输出结果1:
Please enter your score.
59
No pass
输出结果2:
Please enter your score.
70
No Pass
if多选择结构
生活中很多场景不仅仅只有两个选择,所以我们需要一个多选择结构来处理这类问题。
语法:
if(boolean表达式1){
//boolean表达式1的值为true执行代码
}else if(boolean表达式2){
//boolean表达式2的值为true执行代码
}else if(boolean表达式3{
//boolean表达式3的值为true执行代码
}else{
//以上boolean表达式的值都是false,则执行该代码
}
public class IfDemo03 {
public static void main(String[] args) {
System.out.println("Please enter your score.");
Scanner scanner = new Scanner(System.in);
int score = scanner.nextInt();
int standard = 60;
if (score>0&&score<standard){
System.out.println("No pass");
}else if (score>=standard&&score<70){
System.out.println("Level D");
}else if (score>=70&&score<80){
System.out.println("Level C");
}else if (score>=80&&score<90){
System.out.println("Level B");
}else if (score>=90&&score<100){
System.out.println("Level A");
}else if (score==100){
System.out.println("Congrarulations!");
}else{
System.out.println("Invalid score");
}
scanner.close();
}
}
输出结果:
Please enter your score.
85
Level B
注意事项:
- if语句至多有1个else语句,else语句在所有的else if语句之后
- if语句可以有若干个else if语句,它们必须在else语句之前。
- 一旦其中一个else if语句检测为true,其他的else if语句都将跳过执行。
嵌套的If结构
你可以在另一个if或者else if语句中使用if或者else if语句。
语法:
if(boolean表达式1){
//boolean表达式1的值为true则执行该代码
if(boolean表达式2)
boolean表达式2的值为true则执行该代码
}
}
举例:
public class IfDemo04 {
public static void main(String[] args) {
System.out.println("Please enter the number.");
Scanner scanner = new Scanner(System.in);
int number1 = scanner.nextInt();
int number2 = scanner.nextInt();
/*要求输入两个都大于50的数*/
if (number1 > 50) {
if (number2 > 50) {
System.out.println("number1>50 and number2>50");
}else {
System.out.println("number1>50 but number2 <= 50");
}
}else{
System.out.println("number1 <= 50");
}
}
}
输出结果:
Please enter the number.
60
60
number1>50 and number2>50
Switch选择结构
多选择结构还有一个实现方式是switch case语句。
switch case语句判断一个变量与一系列值中某个值是否相等。每个值成为一个分支。
基本语法:
switch(expression){
case value1 :
//语句
break;//可选
case value2 :
break;//可选
//可以有任意数量的case语句
default : //可选
//语句
}
-
switch语句中的变量类型可以是: byte、short、int、char.
-
从JDK7开始switch字段支持字符串String类型了。
-
同时case标签必须为字符串常量或字面量。
public class SwitchDemo01 {
public static void main(String[] args) {
//case 穿透 switch:匹配一个具体的值
String name = "David";
// JDK7新特性:表达式结果可以是字符串!!!
//字符的本质还是数字。通过hashcode来比较。
//反编译: java---class(字节码文件)——反编译(IDEA)
switch (name){
/*若没有break则会将下面的语句全部输出,无法实现匹配到一个具体的值。
* 称为case穿透现象*/
case "Tim":
System.out.println("Tim");
break;
case "Tom":
System.out.println("Tom");
break;
case "David":
System.out.println("David");
break;
//无以上匹配值,则输出default里的语句
default:
System.out.println("Invalid Name");
}
}
}
输出结果:
David