- ⭐ 控制语句
- ⭐ 条件判断结构(选择结构)
- ⭐ switch 语句
做任何事情事情都要遵循一定的原则,毕竟不以规矩,不成方圆,例如,到图书馆去借书,就必须要有借书证,并且借书证不能过期,这两个条件缺一不可。程序设计也是如此,需亚流程控制语句实现与用户的交流,并根据用户的输入决定程序要"做什么""怎么做"等。
流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序步骤的基本手段,如果没有流程控制语句,整个程序将按照线性的顺序来执行,不能根据用户的输入流决定执行的序列。下面我带大家一起了解Java语言中的流程控制语句。
⭐ 控制语句
控制语句:
把语句组合成能完成一定功能的小逻辑模块。
它分为三类:顺序、选择和循环。
学会控制语句,是真正跨入编程界的"门槛",是成为"程序猿"的"门票"。
⭐ “顺序结构”代表“先执行 a,再执行 b”的逻辑。比如,先找个女朋友,再给女朋友打电话。
⭐ “条件判断结构”代表“如果…,则…”的逻辑。比如,如果女朋友来电,则迅速接电话;
⭐ “循环结构”代表“如果…,则重复执行…”的逻辑。比如,如果没打通女朋友电话,则再继续打一次;(做个舔狗!!!)
很神奇的是,三种流程控制语句就能表示所有的事情!不信,你可以试试拆分你遇到的各种事情。实际上,任何软件和程序,小到一个练习,大到一个操作系统,本质上都是由“变量、选择语句、循环语句”组成。
⭐ 条件判断结构(选择结构)
条件判断结构有:
if 结构和 switch 结构。而 if 结构又可以分为 if 单分支结构、if-else 双分支结构、if-else if-else 多分支结构。
if 单分支结构
语法结构:
if(布尔表达式){语句块}
注意:
⭐ 如果if语句不写{},则只能作用于后面的第一条语句。⭐ 强烈建议,任何时候都写上{},即使里面只有一句话!
【eg】if 单分支结构(掷骰子游戏)
Math 类的使用
⭐ Math.random()该方法用于产生 0 到 1 区间的 double 类型的随机数,但是不包括 1。
⭐ int i = (int) (6 * Math.random()); //产生:[0,5]之间的随机整数
public class Test {public static void main(String[ ] args) {//通过掷三个骰子看看今天的手气如何?int a = (int)(6 * Math.random()) + 1;//通过 Math.random()产生随机数int b = (int)(6 * Math.random()) + 1;int c = (int)(6 * Math.random()) + 1;int count = a + b + c;//如果三个骰子之和大于 15,则手气不错if(count > 15) {System.out.println("今天手气不错");}//如果三个骰子之和在 10 到 15 之间,则手气一般if(count >= 10 && count <= 15) { //错误写法:10<=count<=15System.out.println("今天手气很一般");}//如果三个骰子之和小于 10,则手气不怎么样if(count < 10) {System.out.println("今天手气不怎么样");}System.out.println("共计" + count + "分");}
}
if-else 双分支结构
语法结构:
if(布尔表达式){语句块 1}else{语句块 2
}
当布尔表达式为真时,执行语句块1,否则,执行语句块2。也就是 else 部分。
【eg】if-else 双分支结构
public class Test {public static void main(String[ ] args) {//随机产生一个[0.0, 4.0)区间的半径,并根据半径求圆的面积和周长double r = 4 * Math.random();//Math.pow(r, 2)求半径 r 的平方double area = 3.14* r*r;double circle = 2 * Math.PI * r;System.out.println("半径为: " + r);System.out.println("面积为: " + area);System.out.println("周长为: " + circle);//如果面积>=周长,则输出"面积大于等于周长",否则,输出周长大于面积if(area >= circle) {System.out.println("面积大于等于周长");} else {System.out.println("周长大于面积");}}
}
条件运算符有时候可用于代替 if-else。
【eg】if-else 与条件运算符的比较:使用 if-else
int a = 3;int b = 4;int c2 = 0;if(a<b){c2 = b;}else{c2 = a;}System.out.println(c2);
【eg】if-else 与条件运算符的比较:使用条件运算符
// 三元运算int a = 3;int b = 4;int c = a<b?b:a; //返回 a 和 b 的最大值System.out.println(c);
if-else if-else 多分支结构
语法结构:
if(布尔表达式 1) {语句块 1;} else if(布尔表达式 2) {语句块 2;}……else if(布尔表达式 n){语句块 n;} else {语句块 n+1;
}
当布尔表达式1为真时,执行语句块1;否则,判断布尔表达式2,当布尔表达式 2 为真时,执行语句块 2;否则,继续判断布尔表达式 3······;如果 1~n 个布尔表达式均判定为假时,则执行语句块 n+1,也就是 else 部分。
【eg】if-else if-else 多分支结构
public class Test {public static void main(String[ ] args) {int age = (int) (100 * Math.random());System.out.print("年龄是" + age + ", 属于");
//15 岁以下儿童;15-24 青年;25-44 中年;45-64 中老年;65-84 老年;85 以上老寿星if (age < 15) {System.out.println("儿童, 喜欢玩!");} else if (age < 25) {System.out.println("青年, 要学习!");} else if (age < 45) {System.out.println("中年, 要工作!");} else if (age < 65) {System.out.println("中老年, 要补钙!");} else if (age < 85) {System.out.println("老年, 多运动!");} else {System.out.println("老寿星, 古来稀!");}}
}
⭐ switch 语句
switch 多分支结构(多值情况)
语法结构:
switch (表达式) {case 值 1: 语句块 1;break;case 值 2:语句块 2;break;… … … … …default:默认语句块;
}
⭐ switch 会根据表达式的值从相匹配的 case 标签处开始执行,一直执行到 break 处或者是 switch 的末尾。如果表达式的值与任一 case 值不匹配,则进入 default 语句。
⭐ switch 中表达式的值,是 int(byte、short、char、long 不行)、枚举,字符串。
【eg】switch 结构
public class TestSwitch {public static void main(String[] args){int month = 2; //1 表示 1 月,2 表示 2 月,....if(month==1||month==2||month==3){System.out.println("春季");}else if(month==4||month==5||month==6){System.out.println("夏季");}else if(month==7||month==8||month==9){System.out.println("秋季");}else{System.out.println("冬季");}System.out.println("========使用 switch 改造上面的代码,switch 特别适合多值判断=============");switch (month){case 1:case 2:case 3:System.out.println("春季");break;case 4:case 5:case 6:System.out.println("夏季");break;case 7:case 8:case 9:System.out.println("秋季");break;default:System.out.println("冬季");}}
}
switch 接收字符串
【eg】JDK7.0 之后可以直接使用字符串。
String str = "audi";switch (str){case "audi":System.out.println("我买了个奥迪车");break;case "benz":System.out.println("我买了个奔驰车");break;default:System.out.println("比亚迪,挺好!");}