开关语句和大小写
Switch Statement and Case
我正在为我的 CPSC class 编写代码,我必须打印一个为 int 设置的案件编号。当我输入“2”时,代码打印了八次 "two potato" 而不是 "One potato, two potato".
这是我的代码:
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;
}
}
}
}
我认为我的问题是我的 for-loop,但不太确定,因为我在这里寻求帮助。提前致谢!
因为c % 8 (2 % 8 = 2)
,所以每次循环都会执行case 2
,打印two potato
。您可以改用 i % 8
。
这段代码是...奇特的:
主要问题是您没有使用在 for
循环中递增的 i
变量。相反,您使用的是 c
变量:
switch (c % 8)
应该是:
switch (i % 8)
您不需要 case 8
,因为 i % 8
不可能得到 8。而且,看起来您根本不需要 c
变量。
这应该可以解决问题。正如其他人所说,您应该使用 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;
}
}
我正在为我的 CPSC class 编写代码,我必须打印一个为 int 设置的案件编号。当我输入“2”时,代码打印了八次 "two potato" 而不是 "One potato, two potato".
这是我的代码:
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;
}
}
}
}
我认为我的问题是我的 for-loop,但不太确定,因为我在这里寻求帮助。提前致谢!
因为c % 8 (2 % 8 = 2)
,所以每次循环都会执行case 2
,打印two potato
。您可以改用 i % 8
。
这段代码是...奇特的:
主要问题是您没有使用在 for
循环中递增的 i
变量。相反,您使用的是 c
变量:
switch (c % 8)
应该是:
switch (i % 8)
您不需要 case 8
,因为 i % 8
不可能得到 8。而且,看起来您根本不需要 c
变量。
这应该可以解决问题。正如其他人所说,您应该使用 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;
}
}