分支结构知识点:基于条件执行的语句
一) if结构: 1条路
1)语法:
if(boolean){
语句块---------基于条件执行的
}
2)执行过程:
判断boolean的值:
若为true,则执行语句块
若为false,则if结束
二)if…else结构: 2条路
1)语法:
if(boolean){
语句块1
}else{
语句块2
}
2)执行过程:
判断boolean的值:
若为true,则执行语句块1(整个结束)
若为false,则执行语句块2(整个结束)
3)说明: 语句块1和语句块2,必走其中之一
三)if…else if结构: 多条路
1)语法:
if(boolean-1){
语句块1
}else if(boolean-2){
语句块2
}else if(boolean-3){
语句块3
}else{
语句块4
}
2)执行过程:
判断boolean-1,若为true则执行语句块1(结束),若为false则
再判断boolean-2,若为true则执行语句块2(结束),若为false则
再判断boolean-3,若为true则执行语句块3(结束),若为false则执行语句块4(结束)
3)说明:
语句块1/2/3/4,只执行其中之一
四)switch…case结构: 多条路
int num = 4;
switch(num) { //byte,short,int,char,String(JDK1.7开始支持)
case 1: //if(num==1)
System.out.println(111);
break;
case 2: //以此为入口
System.out.println(222);
break; //跳出switch
case 3:
System.out.println(333);
break;
default: //所有case都未匹配时才执行
System.out.println(666);
优点:效率高、结构清晰
缺点:整数、相等
break:跳出switch
default:(相当于else)
import java.util.Scanner;
public class CommandBySwitch {
public static void main(String[] args) {
Scanner scan=new Scanner(System.in);
System.out.println("您可查询以下业务1话费2流量3余额");
int i;double o;
for( i=6;i>1;i--){
int s=scan.nextInt();
switch(s){
case 1:
System.out.println("您的话费为(按1充值)(按2查看优惠)");
int k=scan.nextInt();
if(k==1){
System.out.println("您要充值的金额为(按*返回)");
double p=scan.nextDouble();
//
if(p<50){
System.out.println("优惠后您需要缴费"+p);
}else if(p<100){
o=p*0.9;
// o=p*0.9 ;
System.out.println("优惠后您需要缴费"+o);//o
System.out.println("已为您优惠"+(String.format("%.2f",(p-o))+"元"));
}else {
p=p*0.8;
System.out.println("优惠后您需要缴费"+p);
System.out.println("已为您优惠"+(p/10*9)+"元");
}
}else if(k==2){
System.out.println("满50打9折扣,满100打八折");
}else {
System.out.println();
}
break;
case 2:
System.out.println("您的流量为");
break;
case 3:
System.out.println("您的余额为");
break;
default:
System.out.println("按键错误");
} if(i==2){
System.out.println("");
}else{
System.out.println("您还可以继续查询的次数为"+(i-2)+"次");
System.out.println("您要查询的业务为");
}
}
System.out.println("感谢来电");
}
}
注: