我有一个关于java的基本问题,我想在java中实现。 的 Questio
我有一个整数1到50的数组。 int a [] = {1,2,3,............ 50}
如果a [i]除以2,则会显示“Hello”。
如果a [i]除以3,则会显示“World”。
如果a [i]除以5和2,那么它将显示“ Hello World ”。
我已经尝试过以下程序,但它显示正确的输出
package test;
public class Test {
public static void main(String[] args) {
int []a = {1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
for (int i = 0; i < a.length; i++) {
if(a[i]%2==0) {
System.out.println("Hello");
} else if(a[i]%3==0) {
System.out.println("World");
} else if(a[i]%2==0 && a[i]%5==0) {
System.out.println("Hello World");
}
}
}
}
答案 0 :(得分:2)
您写道“a [i]除以5和2”但您的代码包含“3”:
} else if(a[i]%3==0 && a[i]%5==0) {
需要成为
} else if(a[i]%2==0 && a[i]%5==0) {
但问题是你的if语句是以永远不会达到第3个选项的方式排序的,你需要将“else ifs”更改为“if”(除非你有其他意图,那么你可能需要改为对语句进行重新排序,但是你必须考虑你想用2和3或2,3和5全部整除的数字做什么。
答案 1 :(得分:2)
我没有看到任何可能比下面的代码错误的情况。 IF
已得到改善,但您无法远离这一点。
int[] values = {1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
for (int i = 0; i < values.length; i++) {
int value = values[i];
if (value % 2 == 0) {
if (value % 5 == 0) {
System.out.println("Hello World");
} else {
System.out.println("Hello");
}
} else if (value % 3 == 0) {
System.out.println("World");
}
}
答案 2 :(得分:0)
我得到了答案。需要将条件放在正确的位置
if(a[i]%2==0 && a[i]%5==0) {
System.out.println("Hello World");
} else if(a[i]%3==0) {
System.out.println("World");
} else if(a[i]%2==0) {
System.out.println("Hello");
}
感谢您的帮助
答案 3 :(得分:0)
另一个例子是使用递归来解决它但你仍然到达IFs
。
public class Main {
public static void main(String[] args) {
int[] values = {1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
check(0, values);
}
private static void check(int index, int[] values) {
if (index >= values.length)
return;
int value = values[index];
if (value % 2 == 0) {
if (value % 5 == 0) {
System.out.println("Hello World");
} else {
System.out.println("Hello");
}
} else if (value % 3 == 0) {
System.out.println("World");
}
check(++index, values);
}
}