作业分配:我被要求创建一种方法,该方法将对从1到分配给变量的值的所有奇数进行计数,但必须使用while循环。
我一直在使用模数来尝试确定它是偶数还是奇数。我试过确定奇数,然后仅使用+2。我怀疑这是一个不太明显的简单逻辑错误。
...
我的期望是将计数器与数字(用户定义的变量)进行比较,并继续执行模运算并打印结果,直到计数器超过数字为止。但是,当我输入数字时,它只会打印该数字并不断磨合。
答案 0 :(得分:0)
与@forpas达成协议,您的counter++
仅被调用一次。
尝试一下...
public static void printOddNumber(int number){
int counter = 1;
while (counter <= number) {
if (counter % 2 !=0) {
System.out.println(counter);
}
counter++;
}
}
从可读性的角度来看,这是一个更好的答案...
public static void printOddNumber(int number){
int counter = 1;
while (counter <= number) {
if (isOddNumber(counter)) {
System.out.println(counter);
}
counter++;
}
}
public static boolean isOddNumber(int number) {
return number % 2 != 0;
}
答案 1 :(得分:-1)
一旦我在循环外删除了counter ++语句,我就开始收到正确的迭代次数,但所有迭代次数都显示了我输入的次数。我只需要更改System.out.println即可显示正确的变量,在这种情况下,“计数器”不是“数字”。我的方法最终看起来像第一个示例hooknc。感谢大家的所有帮助。