基于条件的java逻辑编程
我有一个关于java的基本问题,我想用java实现。 问题 我有一个整数1到50的数组。 INTA[]={1,2,3,…..50} 如果[i]除以2,则它将显示“Hello” 如果a[i]除以3,则它将显示“世界” 如果a[i]除以5和2,则它将显示“你好世界”” 我已经试过下面的程序,但它的输出是正确的基于条件的java逻辑编程,java,logic,Java,Logic,我有一个关于java的基本问题,我想用java实现。 问题 我有一个整数1到50的数组。 INTA[]={1,2,3,…..50} 如果[i]除以2,则它将显示“Hello” 如果a[i]除以3,则它将显示“世界” 如果a[i]除以5和2,则它将显示“你好世界”” 我已经试过下面的程序,但它的输出是正确的 package test; public class Test { public static void main(String[] args) { int
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");
}
}
}
}
封装测试;
公开课考试{
公共静态void main(字符串[]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[i]除以5和2”,但您的代码包含“3”:
需要成为
} else if(a[i]%2==0 && a[i]%5==0) {
但问题是,if语句的排序方式永远无法达到第三个选项,您需要将“else-if”更改为“if”(除非您有其他意图,否则您可能需要对语句重新排序,但您必须考虑如何处理可被2和3整除的数字或2、3和5的全部数字)。您编写了“a[i]被5和2整除”,但您的代码包含“3”:
需要成为
} else if(a[i]%2==0 && a[i]%5==0) {
但问题是,if语句的排序方式永远无法达到第三个选项,您需要将“else-if”更改为“if”(除非你有其他的意图,那么你可能需要重新排序语句,但是你必须考虑一下你想做什么,可以被2和3或2,3和5整除的数字)。我得到了答案。需要把条件放在正确的位置
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");
}
谢谢你的帮助我得到了答案。需要将条件放置在正确的位置
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");
}
感谢您的帮助我看不出有任何情况比下面的代码更错误。如果有改进,则
会有所改进,但您不能偏离太多
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");
}
}
int[]值={1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
对于(int i=0;i
我看不出任何情况比下面的代码更错误。如果得到改进,则,但您不能偏离太多
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");
}
}
int[]值={1,2,3,4,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
对于(int i=0;i
另一个例子是使用递归来解决它,但您仍然到达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);
}
}
另一个例子是使用递归来解决这个问题,但是您仍然可以到达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);
}
}
你的意思是“如果a[i]可以被……整除吗?”“如果a[i]被5和2整除,那么它将显示……”你的最后一个else-if子句比较的是3和5,而不是2和5。如果a[i]被5和2整除,那么它将显示“你好世界”。你的代码声明:a[i]%3==0和&a[i]%5==0
。你的最后一个条件else如果(a[i]%3==0和&a[i]%5==0)如果(a[i]%3==0)
你需要将你的条件从最具体的一个排序到更一般的一个。被2和5除比只被2除更具体,所以你需要更早地处理这种情况。你的意思是“如果a[i]可被…”除吗如果a[i]被5和2除,那么它将显示“Hello World”。您的代码声明:a[i]%3==0&&a[i]%5==0
。您的最后一个条件else if(a[i]%3==0&&a[i]%5==0)
将永远不会满足,因为它位于else中fromif(a[i]%3==0)
您需要将您的条件从最具体的条件排序为更一般的条件。被2和5除比只被2除更具体,因此您需要更早地处理这种情况。关于最后一句话:解决方案是将else if
更改为if
或删除第三个条件并放入if(a[i]%5==0)
在if(a[i]%2==0)
块中,这对IMO来说也更清晰。你的意思是需要把条件放在正确的位置。比如如果(a[i]%2==0&&a[i]%5==0){System.out.println(“Hello World”);}需要把它放进去1st@Test不,我的意思是:if(a[I]%2==0){if(a[I]%5==0){print(“Hello world”);}else{print(“Hello”)}
关于最后一个语句:解决方案是将else if
更改为if
,或者删除第三个条件并将if(a[i]%5==0)
放入if(a[i]%2==0)中
block,读IMO也更清楚。你的意思是需要把条件放在正确的位置。比如,(a[i]%2==0&&a[i]%5==0){System.out.println(“Hello World”);}需要把它放在1st@Test不,我的意思是:if(a[I]%2==0){if(a[I]%5==0){print(“Hello world”);}else{print(“Hello”)}