如何借助isOdd方法实现打印1-100间奇数的Java方法?
问题分析与解决
先说说你那两个方案的问题:
- 方案1:while循环的条件把
number < 100和isOdd(number)用&&连在一起了,这会导致当number变成2(偶数)时,isOdd返回false,循环直接终止,所以只能打印出1,后面的奇数都没法处理。 - 方案2:for循环里只是调用了
isOdd(i)但没做任何判断逻辑,循环结束后只打印了最终的i值(也就是100),完全没实现筛选奇数并打印的需求。
正确实现方式
方式一:使用for循环
遍历1到100的每个数,对每个数调用isOdd方法判断,是奇数就打印:
static void func1() { for (int i = 1; i <= 100; i++) { if (isOdd(i)) { // 调用isOdd判断当前数是否为奇数 System.out.println(i); } } }
方式二:使用while循环
同样遍历每个数,在循环体内判断是否为奇数:
static void func1() { int number = 1; while (number <= 100) { // 先保证遍历完1到100的所有数 if (isOdd(number)) { // 调用isOdd做判断 System.out.println(number); } number++; // 每次循环让数字加1,避免死循环 } }
补充说明
你提供的isOdd方法是完全可用的,能正确判断奇数。核心逻辑就是在循环内部,对每个遍历到的数调用这个方法,用if语句判断结果,再决定是否打印。
内容的提问来源于stack exchange,提问作者laryberry
相关产品推荐
相关产品推荐

