JavaSE初学(2)

发布时间:2026/8/6 4:30:21
JavaSE初学(2) 第二章 If、While、For、Switch一、Java 四大流程控制if、while、for、switch1. if-else 语句if-else 是 Java 中最基础的条件控制语句用于根据布尔表达式的结果执行不同的代码块。if (boolean) { // 代码块 } else if (boolean) { // 代码块 } else if (boolean) { // 代码块 } else { // 代码块 }注意事项括号里只能是 boolean 表达式不能写数字C 语言可以Java 不行通过 Scanner 可以实现从控制台输入信息Scanner scanner new Scanner(System.in); System.out.println(请输入成绩); int score scanner.nextInt();若 IDEA 控制台不能输入数据可添加 VM 参数-Deditable.java.test.consoletrue3. 超过三层的 if-else 逻辑语句可以使用卫语句优化public void findBoyfriend(Man man) { if(man.isUgly()){ System.out.println(换一个); return; } if(man.isPoor()){ System.out.println(再换一个); return; } if(man.isBad()){ System.out.println(nonono); return; } System.out.println(Yes); }2. 三目运算符语法boolean ? 数1 : 数2执行过程计算 boolean 的值若为 true 则结果为数1若为 false 则结果为数2。public void test() { int num1 13; int num2 5; int max 0; if (num1 num2) { max num1; } else { max num2; } System.out.println(max); int max1 num1 gt; num2 ? num1 : num2; System.out.println(max1); }3. 号运算符两边都是数字则做加法运算若一边为字符串则做字符串拼接public void test() { int age 28; System.out.println(我的年龄是23岁); System.out.println(我的年龄是 age 岁); // 我的年龄是28岁 System.out.println(10 20 30); // 3030 System.out.println( 10 20 30); // 102030 }补充String str ; // 空字符串 char ch ; // 错误的没有空字符 char ch ; // 正确的是空格字符二、While、For 循环1. while 循环(1) while 结构while 适用于循环次数不确定但需要先判断条件再执行的场景。while (条件) { // 条件为 true 时反复执行 }示例public void test() { int i 1; while (i 5) { System.out.println(HelloWorld); i; } }注意如果条件一开始就是 false循环体一次都不会执行。(2) do-while 结构do { // 先执行一次 } while (条件); // 注意这里有分号注意无论条件是否成立do-while 的循环体至少会执行一次适用于需要先执行一次业务逻辑再判断是否继续的场景。2. for 循环for 最适合循环次数已知或需要遍历集合/数组的场景。for(变量声明和赋值; 循环条件; 变量自加){ // 循环体 }执行顺序变量声明和赋值 → 判断循环条件 → 执行循环体 → 变量自加 → 返回再次判断循环条件进入下一次循环直到条件为 false。public void test() { for (int i 1; i 5; i) { System.out.println(HelloWorld); } }while、for 循环主要有两类题目(1) 累加思想123...100// sum i; sum sum i // sum - i; sum sum - i // sum * i; sum sum * i // sum / i; sum sum / i Test public void test() { int sum 0; for (int i 1; i 100; i) { System.out.println(i); sum i; System.out.println(sum: sum); } System.out.println(sum: sum); }(2) 统计思想数一下符合条件的有多少个计算1-100以内7的倍数的个数Test public void test() { int count 0; for (int i 1; i 100; i) { if (i % 7 0) { System.out.println(i); count; } } System.out.println(count: count); }3. continue、breakcontinue跳出本次循环继续下一次循环break跳出离它最近的那层循环Test public void test01() { for (int i 1; i 5; i) { if (i 3) { continue; } System.out.println(i); } } Test public void test02() { for (int i 1; i 5; i) { if (i 3) { break; } System.out.println(i); } } Test public void test03() { // i,j,k for (int i 1; i 5; i) { System.out.println(i: i); for (int j 1; j 5; j) { if (j 3) { break; } System.out.println(j: j); } } }注意无限循环有结束条件但是条件无法满足死循环没有结束条件的循环do{ // 循环体 } while(true); for (;;){ // 循环体 }4. 双重 for 循环外层循环控制行数数一下有几行就能确定外层循环内层循环控制列数这一行打印多少个到底要打印多少个要找出和当前行之间的一个关系Test public void test04() { for (int i 1; i 4; i) { System.out.print(*); } System.out.println(); // **** for (int i 1; i lt; 4; i) { System.out.println(*); } // * // * // * // * } Test public void test05() { for (int i 1; i 3; i) { // i1: 代表打印第一行 // i2: 代表打印第二行 // i3: 代表打印第三行 for (int j 1; j 4; j) { // j代表这一行打印多少个 System.out.print(*); } // 打印完一行之后需要换行 System.out.println(); } } Test public void test06() { // i1 j1 // i2 j2 // i3 j3 for (int i 1; i 5; i) { for (int j 1; j i; j) { System.out.print(*); } System.out.println(); } // * // ** // *** // **** // ***** } Test public void test07() { for (int i 1; i 9; i) { for (int j 1; j i; j) { // 很多时候先用一个假的数据先把框架搭建起来先把流程走完再把假的变成真的 // System.out.println(2714\t); System.out.print(j i (i * j) \t); } System.out.println(); } // 结果为九九乘法表 }三、Switch 语句switch 可以接受的值byte、short、int整数类型charStringEnum枚举不支持 long。switch(2) { case 1: // 代码 break; case 2: // 代码 break; // ... default: // 代码 break; }示例int month 12; switch(month) { case 1: System.out.println(1月); break; case 2: System.out.println(2月); break; case 3: System.out.println(3月); break; default: System.out.println(没有这个月); } // 输出没有这个月// switch 匹配某一个变量的值如果匹配到某一个 case 项就从这一项开始执行// 如果所有的 case 都没有匹配就执行 default// 直到遇到 break 为止或者代码块结束Test public void test00() { int num 12; if (num 1) { System.out.println(1); } else if (num 2) { System.out.println(2); } else if (num 3) { System.out.println(3); } else { System.out.println(else); } switch (num) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case 3: System.out.println(3); break; default: System.out.println(default); break; } }练习1输入月份判断天数1、3、5、7、8、10、12 -------- 31天4、6、9、11 -------------------- 30天2 ---------------------------------- 28/29天Test public void test1() { Scanner scanner new Scanner(System.in); System.out.println(请输入月份); int month scanner.nextInt(); switch (month) { case 1: System.out.println(31天); break; case 3: System.out.println(31天); break; case 4: System.out.println(30天); break; case 5: System.out.println(31天); break; case 2: System.out.println(请输入年份); int year scanner.nextInt(); // 判断闰年 if ((year % 4 0 year % 100 ! 0) || (year % 400 0)) { System.out.println(29天); } else { System.out.println(28天); } break; } } Test public void test2() { Scanner scanner new Scanner(System.in); System.out.println(请输入月份); int month scanner.nextInt(); switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println(31天); break; case 4: case 6: case 9: case 11: System.out.println(30天); break; case 2: System.out.println(请输入年份); int year scanner.nextInt(); // 判断闰年 if ((year % 4 0 year % 100 ! 0) || (year % 400 0)) { System.out.println(29天); } else { System.out.println(28天); } break; default: System.out.println(default); break; } }练习2猜数字游戏Test // 猜数字 public void test01() { Scanner scanner new Scanner(System.in); Random rand new Random(); // 随机生成1~1000的数字 int target rand.nextInt(1000) 1; while (true) { System.out.println(猜吧); int input scanner.nextInt(); // 输入0退出程序 if (input 0) { System.out.println(程序退出); break; } if (input amp;gt; target) { System.out.println(太大了); } else if (input amp;lt; target) { System.out.println(太小了); } else { System.out.println(恭喜你猜对了); break; } } scanner.close(); }