public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter value: ");
int value = input.nextInt();
if (value == 1 || value == 3 || value == 5 ||value == 7 || value == 9) {
if (value % 3 == 0)
System.out.println(value + " is an odd number less than 10"
+ " and divisible by 3");
}
else if (value == 2 || value == 4 || value == 6 ||value == 8) {
if (value % 3 == 0)
System.out.println(value + " is an even number less than 10"
+ " and divisible by 3");
}
else
System.out.println("Invalid number");
input.close();
}
if-else语句只识别可被3整除的整数 3 , 6或9 。例如,当我键入1或5时,程序不显示任何输入,只是停止运行。
答案 0 :(得分:1)
如果您输入“1”,则if(value == 1)
为true
,然后程序会检查if(value %3 == 0)
。由于value%3
是1
,当值为1时,它不会打印任何内容并退出。所以什么也看不见。
通常,在任何IDE中都有一些调试工具,因此通过使用它们,您将能够逐步了解该程序的工作原理。
答案 1 :(得分:1)
我不知道你在if
语句中使用这个特定逻辑的原因,但我们可以重构,假设你打印的内容实际上是你想要的:
是小于10的奇数/偶数,可以除以3
if (value < 10 && value % 2 == 1 && value % 3 == 0) {
System.out.println(value + " is an odd number less than 10"
+ " and divisible by 3");
}
else if (value < 10 && value % 2 == 0 && value % 3 == 0) {
System.out.println(value + " is an even number less than 10"
+ " and divisible by 3");
}
else {
System.out.println("value does not meet our conditions.");
}
1和5明显导致代码无效的直接原因是它们输入第一个if
语句但是后续条件失败,因为它们不能被3整除,并且您的代码不会输出这种情况。
答案 2 :(得分:0)
这是因为给定的逻辑。当您输入1或5作为输入时,如果变为真,则输入第一个外部。但是if(value % 3 == 0)
并不正确,这就是为什么程序在没有提供任何输出的情况下结束的原因。
如果我理解您对此计划的期望,请尝试以下代码
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter value: ");
int value = input.nextInt();
if (value < 10 && value % 2 == 0 && value % 3 == 0) {
System.out.println(value + " is an even number less than 10" + " and divisible by 3");
}
else if (value < 10 && value % 2 != 0 && value % 3 == 0) {
System.out.println(value + " is an odd number less than 10" + " and divisible by 3");
}
else
System.out.println("Invalid number");
input.close();
}
答案 3 :(得分:0)
例如,当您输入1或5时,下面的条件变为真
if(value == 1 || value == 3 || value == 5 || value == 7 || value == 9)
但是,值%3不等于0因此没有打印任何内容,程序控制直接转到
input.close();
答案 4 :(得分:0)
首先,你不应该使用if-else语句。现在,问题是当你输入1或5时,它们会传递第一个if语句,但是(1%3 == 0)或(5%3 == 0)都不是真的,这就是你的代码所做的这些情况都没有。试试这个:
if(value % 3 == 0 && value <10) {
if(value % 2 != 0){
System.out.println(value + " is an odd number less than 10"
+ " and divisible by 3");
}else{
System.out.println(value + " is an even number less than 10"
+ " and divisible by 3");
}
}else{
System.out.println("Invalid number");
}