Java学习之==>条件判断、循环控制
一、条件判断
1、if-else
示例:
/** * 第1种,1个分支 */ public void case1() { int age = 15; if (age > 18) { System.out.println("成年人"); } } /** * 第2种,2个分支 */ public void case2() { int age = 15; if (age > 18) { System.out.println("成年人"); } else { System.out.println("未成年人"); } } /** * 第3种,多个分支 */ public void case3() { int num = 0; if (num > 10) { System.out.println(""); } else if (num > 20) { System.out.println(""); } else if (num > 30) { System.out.println(""); } else if (num > 40) { System.out.println(""); } else if (num > 50) { System.out.println(""); } else { System.out.println(""); } }
2、switch-case
示例:
/** * 字符串数据作为表达式 * * break关键字 * * default关键字 * * 可以作为switch表达式的数据类型: byte,short,char,int,枚举,String */ public void case1() { String str = "你好"; switch (str) { case "你好": System.out.println("跟我打招呼"); break; case "尼玛": System.out.println("这是要干架"); break; case "嘿嘿嘿": System.out.println("这可能是要搞基"); break; default: System.out.println("不懂你要说啥"); } } /** * 多个常量落进相同的逻辑处理 */ public void case2() { // type=1, 支付宝, // type=2, 微信 // type=3, 京东 // type=4, 易宝 int type = 4; switch (type) { case 1: case 2: case 3: System.out.println("互联网支付"); break; case 4: case 5: case 6: case 7: System.out.println("非互联网支付"); break; default: System.err.println("出错啦, 不支持的类型"); } }
总结:
相同点
- 都是一种逻辑分支的处理,语义: 要么你,要么我,要么他
- 都有兜底的语句,if是else, switch是default
不同点
- if-else 是一个范围的判断,如 小于10,大于100
- switch-case 是精确的等值分支
注意
- 使用switch的都可以使用if-else改写,反之不成立
- 逻辑要兜住, else, default很重要
二、循环控制
1、for循环
示例:
/** * @author Luolei * @date 2019/8/24 */ public class Test1 { /** * 最基本的循环,打印1到100内的偶数 */ public void case1() { for (int i = 2; i <= 100; i += 2) { System.out.println(i); } } /** * 死循环 */ public void case2() { for (; ; ) { System.out.println("哈哈哈"); } } /** * continue * * break */ public void case3() { for (int i = 0; i <= 10; i++) { System.out.println("yes"); if (i % 2 == 0) { // 结束当前循环,进入下一次循环 continue; } if (i == 9) { // 跳出循环 break; } System.out.println(i); } } /** * 循环一个数组或list */ public void case4() { int[] arr = {1,2,3,4}; for (int i : arr) { System.out.println(i); } }
2、while循环
示例:
/** * 最基本的循环,打印1到10 */ public void case1() { // init int i = 1; // test while (i <= 10) { // body System.out.println(i); // update i++; } } /** * 死循环,条件没有结束的时候 */ public void case2() { while (true) { System.out.println("死循环"); } } /** * continue && break */ public void case3() { int i = 1; while (i <= 100) { if (i % 2 == 0) { i++; // 结束当前循环,进入下一次循环 continue; } if (i == 9) { // 跳出循环 break; } System.out.println(i); i++; } }
3、do-while循环
示例:
/** * 最基本的循环,打印1到10 */ public void case1() { // init int num = 0; do { // body System.out.println("进入循环体"); // update num++; } while (num < 10); } /** * 死循环 */ public void case2() { // init int num = 1; do { // body System.out.println("进入循环体"); // update } while (num == 1); } /** * continue && break */ public void case3() { // init int num = 1; // body do { System.out.println("进入循环体"); if (num % 3 == 0 ) { num++; continue; } if (num % 5 == 0 ) { break; } num++; // update } while (num <= 100); }
总结:
组成
- 循环控制均可抽象成四部分
- init 初始化
- test 条件测试
- body 循环体代码
- update 迭代变更
注意
- 一定要注意循环的退出条件,不要造成死循环
- 即使不死循环,也要注意循环的次数
- do-while至少需要执行一次然后再判断条件