Flyinsky's Codes
1207 字
6 分钟
Java中的循环与分支
2024-09-23

Java中的循环与分支#

循环结构

  1. for 循环
  2. 增强的 for 循环(for-each 循环)
  3. while 循环
  4. do-while 循环

分支结构

  1. if-语句
  2. if-else 语句
  3. if-else if-else 语句
  4. switch 语句

循环结构#

  1. for 循环#

    • 用于在知道循环次数的情况下重复执行某段代码。
    • 语法:
      for (初始化; 条件; 更新) { // 循环体 }
    • 示例:
      for (int i = 0; i < 10; i++) { System.out.println(i); }
  2. 增强的 for 循环(for-each 循环)#

    • 用于遍历数组或集合。
    • 语法:
      for (元素类型 元素 : 集合) { // 循环体 }
    • 示例:
      int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); }
  3. while 循环#

    • 用于在条件为真时重复执行某段代码。
    • 语法:
      while (条件) { // 循环体 }
    • 示例:
      int i = 0; while (i < 10) { System.out.println(i); i++; }
  4. do-while 循环#

    • 类似于 while 循环,但至少执行一次循环体。
    • 语法:
      do { // 循环体 } while (条件);
    • 示例:
      int i = 0; do { System.out.println(i); i++; } while (i < 10);

分支结构#

  1. if 语句#

    • 根据条件执行代码块。
    • 语法:
      if (条件) { // 代码块 }
    • 示例:
      int number = 10; if (number > 0) { System.out.println("Number is positive."); }
  2. if-else 语句#

    • 根据条件在两个代码块之间选择执行。
    • 语法:
      if (条件) { // 代码块1 } else { // 代码块2 }
    • 示例:
      int number = -10; if (number > 0) { System.out.println("Number is positive."); } else { System.out.println("Number is negative or zero."); }
  3. if-else if-else 语句#

    • 根据多个条件选择执行代码块。
    • 语法:
      if (条件1) { // 代码块1 } else if (条件2) { // 代码块2 } else { // 代码块3 }
    • 示例:
      int number = 0; if (number > 0) { System.out.println("Number is positive."); } else if (number < 0) { System.out.println("Number is negative."); } else { System.out.println("Number is zero."); }
  4. switch 语句#

    • 根据变量的值执行不同的代码块。
    • 语法:
      switch (变量) { case 值1: // 代码块1 break; case 值2: // 代码块2 break; // 更多 case default: // 默认代码块 }
    • 示例:
      int day = 3; switch (day) { case 1: System.out.println("Monday"); break; case 2: System.out.println("Tuesday"); break; case 3: System.out.println("Wednesday"); break; default: System.out.println("Other day"); }

习题#

习题1:根据分数给出成绩评价#

public String getLevelStringByScore(int score) { if (score > 100 || score < 0) return "非法成绩"; //非法成绩判断 if (score >= 90) { return "优秀"; //优秀 90-100 } else if (score >= 80) { return "良好";//良好 80-89 } else if (score >= 60) { return "合格"; //合格 60-79 } else { return "不合格"; //不合格 0-59 } }

for each遍历分数数组

int[] scores = {71,89,67,53,78,64,92,56,74,85}; //分数样例 for (int i : scores) System.out.println(i+"对应的等级是:"+WORK1.getLevelStringByScore(i));

习题2:根据月份返回季节#

public String getSeasonNameByMonth(int month) { if (month > 12 || month < 1) return "非法季节"; //非法季节判断 switch (month) { case 3: case 4: case 5: return "春季"; // 3-5范围的处理 case 6: case 7: case 8: return "夏季"; // 6-8 范围的处理 case 9: case 10: case 11: return "秋季"; //9-11范围的处理 default: return "冬季"; //剩下1,2,12为冬季 } }

习题3:细菌分裂问题#

public int cellDivision(int generation){ if(generation < 1) return 0;//小于一代为0 if(generation == 1) return 1; else return cellDivision(generation - 1 ) * 2; //若为第一代 则返回1 若超过一代 则递归上一代的菌群数量 并乘2 }

习题4:斐波那契数列#

public int fbnq(int n){ if(n < 1 ) return 0; //第0个或负数个返回0 if( n == 1 || n == 2) return 1; else return fbnq(n-1) + fbnq(n-2); //因递归涉及前两个元素 先做好第1,2个元素的判断均为1 从第三个开始 递归前两个值并求和 }

习题4:冒泡排序#

由小到大:#

/* * 由小到大 * */ public int[] BubbleSortArray(int[] toBeSorted) { int length = toBeSorted.length; for (int i = 0; i < length; i++) { for (int j = i + 1; j < length; j++) { if (toBeSorted[j] < toBeSorted[i]) { int temp = toBeSorted[j]; toBeSorted[j] = toBeSorted[i]; toBeSorted[i] = temp; } //从第一个元素遍历到最后一个 每一个遍历到的元素都和后面的每一个其他元素做比较 碰到小者进行交换 } } return toBeSorted; }

由大到小:#

/* * 由大到小 * * */ public int[] BubbleSortArrayReverse(int[] toBeSorted) { int length = toBeSorted.length; for (int i = 0; i < length; i++) { for (int j = i + 1; j < length; j++) { if (toBeSorted[j] > toBeSorted[i]) { int temp = toBeSorted[j]; toBeSorted[j] = toBeSorted[i]; toBeSorted[i] = temp; } //从第一个元素遍历到最后一个 每一个遍历到的元素都和后面的每一个其他元素做比较 碰到大者进行交换 } } return toBeSorted; }

总结#

  • 循环结构forwhiledo-while 和增强的 for 循环用于重复执行代码。
  • 分支结构ifif-elseif-else if-elseswitch 语句用于根据条件执行不同的代码块。

理解这些基本结构是编写高效和可维护Java代码的基础。