任何复杂的程序逻辑都是通过三大结构类型来执行
顺序结构:从上往下执行,每句必走;
分支结构:有条件的执行某语句一次,并非每句执行;
循环结构:有条件的执行某语句多次,并非每句执行;
/*
分支结构
1.if结构:1条路
1)语法:if+(Boolean){语句块------基于条件所执行的语句
}
2)执行过程:
判断boolean的值
若为true,则执行语句块(if)结束
若为false,则if直接结束
*/
//例子:偶数的判断
int num = 5;
if (num%2==0){
System.out.println("结果为偶数:"+num);
}
System.out.println("继续执行");
//满500打7折
double prise = 543;
if (prise>=500){
prise = prise * 0.7;
}
System.out.println("最终金额为:"+(int)prise);
/*
2.if...else结构:2条路
1)语法:
if(boolean){
语句块1
}else{
语句块2
}
2)执行过程:
判断若为true:执行语句块1
判断若为false:执行语句块2
3)说明:2个语句块必走其中一个--------适用2选1的
*/
案例
int num = -3;
if (num%2==0){
System.out.println(num+"是偶数");
}else{
System.out.println(num+"是奇数");
}
System.out.println("继续执行");
double prise = 600;
if (prise>=500){
prise *= 0.8;
}else{
prise *= 0.9;
}
System.out.println("最终金额为"+prise);
/*
2.if...else结构:2条路
1)语法:
if(boolean){
语句块1
}else{
语句块2
}
2)执行过程:
判断若为true:执行语句块1
判断若为false:执行语句块2
3)说明:2个语句块必走其中一个--------适用2选1的
*/
案例
int num = -3;
if (num%2==0){
System.out.println(num+"是偶数");
}else{
System.out.println(num+"是奇数");
}
System.out.println("继续执行");
double prise = 600;
if (prise>=500){
prise *= 0.8;
}else{
prise *= 0.9;
}
System.out.println("最终金额为"+prise);
/*
3. if else if:多条路
语法:
if(boolean){
语句块1
}else if(boolean){
语句块2
}else if(boolean){
语句块3
}else{
语句块4
}
执行过程:
若第一句话true,则执行语句块1(结束),若第一句话为false,第二句话为true,则执行语句块2(结束)
以此类推,第123为false,则执行else语句块4(结束)
注意:最后else语句一般都有,有必执行语句其中之一,没有不一定,可能直接结束
说明:if else if,适合-------多选1的情况
*/
switch case
判断一个变量与一系列的值中的某个值是否相等,每个值称为一个分支
优点:简洁明了,结构清晰,适配的数据类型:byte,short,int,char,String,枚举
缺点: 其他的类型需要if else结构实现
switch(expression变量可改){
case value(可改):语句块
break;//每句case后都要有break,不然case具有穿透性,
后面语句也会继续走
}
switch: (1) s注意小写,break不要忘记写
(2)switch可以作用于byte,short,int,char,String,枚举.类型上,其余类型不允许
sitch case 优点 :简洁,结构清晰,适用于判断整数相等,
缺点:不适合boolean的类型
注意点:
1) case后面的数据可以重复
2) switch后的可以有default,也可以没有default
3) 无论default在哪里,先匹配case,当所有case未匹配时才执行default
package Scanner;
import java.lang.invoke.SwitchPoint;
import java.util.Scanner;
public class CommandBySwitch {
public static void main(String[] args) {
System.out.println("请选择功能:1.存款,2.收款,3.查询余额,0:退出");
Scanner scanner = new Scanner(System.in);
int command = scanner.nextInt();
switch (command){
case 1:
System.out.println("存款业务...");
break;
case 2:
System.out.println("收款业务...");
break;
case 3:
System.out.println("查询业务...");
break;
case 0:
System.out.println("退出业务...");
break;
default:
System.out.println("输入错误");