我正在为我的CPSC类制作代码,我必须打印一个为int设置的案例编号。当我输入“2”时,代码打印“两个土豆”八次而不是“一个土豆,两个土豆”。
这是我的代码:
public class Potato {
public Potato() {
}
public void count(int c) {
for (int i = 0; i < 8; i++) {
switch (c % 8) {
case 1: System.out.println("One potato"); break;
case 2: System.out.println("two potato"); break;
case 3: System.out.println("three potato"); break;
case 4: System.out.println("four..."); break;
case 5: System.out.println("five potato"); break;
case 6: System.out.println("six potato"); break;
case 7: System.out.println("seven potato"); break;
case 8: System.out.println("more!"); break;
default: break;
}
}
}
}
我认为我的问题是我的循环,但不太确定,因为我在这里寻求帮助。提前谢谢!
答案 0 :(得分:1)
这是因为c % 8 (2 % 8 = 2)
,所以在每个循环中它都会执行case 2
并打印two potato
。您可以改为使用i % 8
。
答案 1 :(得分:0)
这段代码很奇怪:
主要问题是您没有使用i
循环增加的for
变量。相反,您使用的是c
变量:
switch (c % 8)
应该是:
switch (i % 8)
您不需要case 8
,因为i % 8
无法导致8.而且,看起来您根本不需要c
变量。
答案 2 :(得分:0)
这应该可以解决问题。正如其他人所说,你应该使用i%8
。但是,为了实现这一点,您应该从i=1
开始0%8 = 0
。并且您的case 8
应更改为case 0
。
for (int i = 1; i <= c; i++) {
switch (i % 8) {
case 1: System.out.println("One potato"); break;
case 2: System.out.println("two potato"); break;
case 3: System.out.println("three potato"); break;
case 4: System.out.println("four..."); break;
case 5: System.out.println("five potato"); break;
case 6: System.out.println("six potato"); break;
case 7: System.out.println("seven potato"); break;
case 0: System.out.println("more!"); break;
default: break;
}
}