阅读量:2
1、跳转控制语句:
测试代码1:
package com.continuetest; public class ControlFlowDemo { // break语句 public void demonstrateBreak() { for (int i = 0; i < 10; i++) { if (i == 5) { break; // 当i等于5时,跳出循环 } System.out.println("在break之前的循环: " + i); } System.out.println("跳出循环后"); } // continue语句 public void demonstrateContinue() { for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; // 跳过偶数 } System.out.println("循环中的奇数: " + i); } } // return语句 public int findMax(int[] numbers) { int max = numbers[0]; for (int number : numbers) { if (number > max) { max = number; } } return max; // 返回最大值 } // 异常处理 public void testException() { try { // 假设这里有一段可能抛出异常的代码 int result = 10 / 0; // 这会抛出ArithmeticException } catch (ArithmeticException e) { System.out.println("除数不能为0"); } // 无论是否发生异常,这里的代码都会执行 System.out.println("异常处理后的继续执行"); } // 主方法,用于测试上述方法 public static void main(String[] args) { ControlFlowDemo demo = new ControlFlowDemo(); demo.demonstrateBreak(); System.out.println("--------"); demo.demonstrateContinue(); System.out.println("--------"); int[] numbers = {3, 5, 1, 8, 2, 9}; System.out.println("数组中的最大值是: " + demo.findMax(numbers)); System.out.println("--------"); demo.testException(); } }
运行结果如下:
测试代码2:
package com.continuetest; //跳转语句 public class JumpControlStatementsExample { public static void main(String[] args) { // break语句 System.out.println("break语句:"); forLoopWithBreak(); // continue语句 System.out.println("\ncontinue语句:"); forLoopWithContinue(); // return语句(从方法中返回) System.out.println("\nreturn语句(从方法中返回):"); int max = getMax(5, 10); System.out.println("较大的数是: " + max); // void方法中的return语句 System.out.println("\nvoid方法中的return语句:"); printMessage(); } // break语句的方法 public static void forLoopWithBreak() { for (int i = 0; i < 10; i++) { if (i == 5) { break; // 当i等于5时,跳出循环 } System.out.println(i); } } // continue语句的方法 public static void forLoopWithContinue() { for (int i = 0; i < 10; i++) { if (i % 2 == 0) { continue; // 如果i是偶数,跳过当前循环的剩余部分 } System.out.println(i); // 只打印奇数 } } // return语句(从方法中返回)的方法 public static int getMax(int a, int b) { if (a > b) { return a; // 返回较大的数 } return b; // 返回较小的数(如果a不大于b) } // void方法中的return语句的方法 public static void printMessage() { System.out.println("Hello, World!"); return; // 终止方法,但不需要返回值 } }
运行结果如下:
2、 嵌套循环:
测试代码1:
package com.continuetest; //循环嵌套 public class ComplexNestedLoopsExample { public static void main(String[] args) { // 初始化一个二维整数数组 int[][] matrix = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} }; // 遍历二维数组的行 for (int i = 0; i < matrix.length; i++) { // 对于每一行,检查是否满足某个条件(例如:行号是否为偶数) if (i % 2 == 0) { // 如果行号为偶数,遍历该行的列 for (int j = 0; j < matrix[i].length; j++) { // 对每个元素,执行一些操作 // 假设要检查元素是否大于其行索引的两倍 if (matrix[i][j] > (i * 2)) { // 如果条件满足,打印该元素,并可能想对其执行更多操作 System.out.println("元素 " + matrix[i][j] + " 满足条件(在偶数行中)"); // 假设还要根据元素的奇偶性决定是否重复某些操作 int k = 0; while (k < (matrix[i][j] % 2 == 0 ? 2 : 1)) { // 如果是偶数,则重复两次;否则,一次 System.out.println("对元素 " + matrix[i][j] + " 重复操作 " + (k + 1)); k++; } } } } else { // 如果行号不是偶数,可能会执行不同的操作或跳过 // 使用do...while循环演示即使条件不满足也会至少执行一次的情况 int firstElement = (matrix[i].length > 0) ? matrix[i][0] : -1; // 安全地获取第一个元素 do { System.out.println("在奇数行中,但仅对第一个元素 " + firstElement + " 执行操作"); } while (false); // 这里条件总是为false,所以do...while循环只执行一次 } } } }
运行结果如下:
测试代码2:
package com.continuetest; //嵌套循环 public class NestedStructuresExample { public static void main(String[] args) { // 初始化一个整数数组 int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 初始化一个计数器,并统计偶数的数量 int evenCount = 0; // 顺序结构:先进行循环遍历 for (int i = 0; i < numbers.length; i++) { // 循环结构 // 顺序结构:在循环体内,先访问数组元素 int number = numbers[i]; // 分支结构:判断当前元素是否为偶数 if (number % 2 == 0) { // 顺序结构:如果是偶数,则执行打印操作 System.out.println(number + " 是偶数"); // 顺序结构:同时,更新偶数的计数器 evenCount++; } } // 顺序结构:循环结束后,打印偶数的总数 System.out.println("数组中共有 " + evenCount + " 个偶数。"); } }
运行结果如下:
测试代码3:
package com.continuetest; //嵌套循环 public class NestedStructuresTest { public static void main(String[] args) { // 初始化一个整数数组 int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; // 使用for循环遍历数组 for (int i = 0; i < numbers.length; i++) { // 添加一个while循环 int j = 0; while (j < 5) { // 假设只对每个元素执行5次操作 if (numbers[i] % 2 == 0) { System.out.println(numbers[i] + " 是偶数(由while循环处理)"); } j++; } // 添加一个do...while循环 // do...while至少会执行一次循环体 int k = 0; do { if (numbers[i] > 5) { System.out.println(numbers[i] + " 大于5(由do...while循环处理)"); } k++; } while (k < 1); // 限制为只执行一次 } // 添加一个单独的计数器来统计偶数 int evenCount = 0; for (int num : numbers) { // 使用for循环遍历 if (num % 2 == 0) { evenCount++; } } // 打印偶数的总数 System.out.println("数组中共有 " + evenCount + " 个偶数。"); } }
运行结果如下:
测试代码4:
package com.continuetest; import java.util.function.Predicate; //用嵌套循环处理字符串 public class StringProcessor { // 翻转字符串 public String reverseString(String str) { StringBuilder sb = new StringBuilder(); for (int i = str.length() - 1; i >= 0; i--) { sb.append(str.charAt(i)); } return sb.toString(); } // 查找并替换子字符串( public String replaceSubstring(String str, String toFind, String replaceWith) { StringBuilder sb = new StringBuilder(str); int index = 0; while ((index = sb.indexOf(toFind, index)) != -1) { sb.replace(index, index + toFind.length(), replaceWith); index += replaceWith.length(); // 更新索引以避免跳过字符 } return sb.toString(); } // 字符串分割与重组 public String filterAndRecombine(String str, String delimiter, Predicate<String> filter) { String[] parts = str.split(delimiter); StringBuilder sb = new StringBuilder(); for (String part : parts) { if (filter.test(part)) { sb.append(part).append(delimiter); } } // 移除尾随的分隔符( if (sb.length() > 0 && sb.charAt(sb.length() - 1) == delimiter.charAt(0)) { sb.setLength(sb.length() - 1); } return sb.toString(); } // 字符统计,只统计ASCII字符 public int[] countCharacters(String str) { int[] count = new int[256]; // 只处理ASCII字符 for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); count[c]++; } return count; } // 主方法(用于测试) public static void main(String[] args) { StringProcessor processor = new StringProcessor(); String original = "Hello, World!mfdka;gjeklhmtahterhbt;=" + "]" + " tyerytue56dsafw3ghtr278"; String reversed = processor.reverseString(original); System.out.println("Reversed: " + reversed); String toReplace = "World"; String withWhat = "Java"; String replaced = processor.replaceSubstring(original, toReplace, withWhat); System.out.println("Replaced: " + replaced); String commaSeparated = "apple,banana,cherry,date"; String filtered = processor.filterAndRecombine(commaSeparated, ",", part -> part.startsWith("a")); System.out.println("Filtered and Recombined: " + filtered); int[] charCounts = processor.countCharacters(original); // 打印字符统计数组的长度 System.out.println("Character counts array length: " + charCounts.length); } }
运行结果如下: