选择结构
if单选择结构
语法
if(布尔表达式){
//如果布尔表达式为真将执行的语句}
package Struct;
import java.util.Scanner;
public class Demon1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
//字符串相等↓
if (s.equals("hello")){
System.out.println("oh,yeah");
}
scanner.close();
}
}
若输入字符hello则输出字符oh,yeah。
if双选择结构
语法
if(布尔表达式){
//如果布尔表达式为真将执行的语句
}else{
//如果布尔表达式为假将执行的语句
}
与单选择结构不同的是多了else情况下要执行的语句。如果满足则进行xx,如果不满足则进行yy
package Struct;
import java.util.Scanner;
public class Demon2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
double x = scanner.nextDouble();
if (x>=60){
System.out.println("你他娘的合格了");
}else{
System.out.println("你他娘的没合格");
}
scanner.close();
}
}
输入一个成绩,大等于60分合格,小于60分不合格
if多选择结构
语法
if(布尔1){//若1为真执行的语句}
else if(布尔2){//布尔2为真执行的语句}
else if(布尔3){//布尔3为真执行的语句}
else{//以上布尔都不为真执行的语句}
注意:多选择结构只会执行其中一条语句,满足后便退出选择。当判断过1后,才判断2,依此类推走顺序结构i。else if数量不设限,有else if必须有else。
package Struct;
import java.util.Scanner;
public class Demon3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩");
double score = scanner.nextDouble();
if (score>90){
System.out.println("你他娘的得了个优!");
}else if (score>60){
System.out.println("有手就行");
}else if(score>50){
System.out.println("就这?就这?");
}else{
System.out.println("重开吧");
}
scanner.close();
}
}
根据输入的成绩,选择输出内容,划分多个成绩区间,使用多选择结构
嵌套的if结构
允许套娃,以后再练。
switch多选择结构
语法
switch(expression){
case value: //语句
break;//可选
。
。
// 任意数量的case
default: //语句 ;
}
package Struct;
public class Switch1 {
public static void main(String[] args) {
char grade = 'B';
switch (grade) {
case 'A':
System.out.println(" 优秀");
break; // 跳出switch选择
case 'B':
System.out.println("良好");
case 'C':
System.out.println("及格");
break; // 跳出switch选择
case 'D':
System.out.println("不及格");
default:
System.out.println("未知成绩");
}
}
}
case穿透
当switch中没有break,case1满足后,程序将继续输出case2,case3.....直到最下方的default。这种一旦满足某个case,该case下方的所有case都将满足(没有break跳出的情况下)的情况成为case穿透。
break
跳出switch选择,即不会输出下方case语句。例如上面的程序grade为B则系统会输出case'B' 对应的语句“ 良好”和穿透到case'C'的语句“及格”,因为case'C'存在break,故在此时跳出switch选择。
default
当上方case都不满足时,default会满足条件。(在内有break的情况下,case能够穿透到defualt)
表达式可以为字符串(String)JDK7的新特性
switch适合匹配一个具体值,而if更适合判断一个区间。