java中的嵌套if语句不读取第二个if语句
我有一个关于嵌套if语句的快速问题。我的代码需要检查用户输入是否为有效的双精度,并且它不是零,然后输出倒数。我可以让它检查输入是否有效并输出倒数,但当我尝试输入零时,它会终止程序。任何帮助都将不胜感激java中的嵌套if语句不读取第二个if语句,java,nested,Java,Nested,我有一个关于嵌套if语句的快速问题。我的代码需要检查用户输入是否为有效的双精度,并且它不是零,然后输出倒数。我可以让它检查输入是否有效并输出倒数,但当我尝试输入零时,它会终止程序。任何帮助都将不胜感激 import java.util.Scanner; public class Reciprocal { public static void main(String[]args){ Scanner stdin = new Scanner(System.in); Syste
import java.util.Scanner;
public class Reciprocal {
public static void main(String[]args){
Scanner stdin = new Scanner(System.in);
System.out.println("Please enter in a non-zero number");
if (stdin.hasNextDouble()) {
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}
System.out.println("The Not Reciprocal is");
} else {
System.out.println(" The input you entered is invalid, please try again.");
}
}
}
删除第二个
System.out.println(“倒数是”+1/数字)
或将其移动到if
-块中 删除第二个System.out.println(“倒数是”+1/数字)
或将其移动到if
-块中 删除第二个System.out.println(“倒数是”+1/数字)
或将其移动到if
-块中 删除第二个System.out.println(“倒数是”+1/数字)
或将其移动到if
-块中 你搞错了。这一行:
System.out.println(“倒数为”+1/个)代码>
正在执行,即使number==0
,因为它已超出if语句。您犯了一个错误。这一行:
System.out.println(“倒数为”+1/个)代码>
正在执行,即使number==0
,因为它已超出if语句。您犯了一个错误。这一行:
System.out.println(“倒数为”+1/个)代码>
正在执行,即使number==0
,因为它已超出if语句。您犯了一个错误。这一行:
System.out.println(“倒数为”+1/个)代码>
即使在number==0
时也会执行,因为它在if语句外。内部if上没有其他值,因此它会检查它是否为0,不在if内执行代码,然后转到System.out.println(“倒数是”+1/number)代码>位于if语句之后的行
如果if语句只允许该行执行两次,那么if语句的意义是什么呢?内部if上没有其他代码,因此它检查它是否为0,不执行if中的代码,然后转到System.out.println(“倒数是”+1/数字)代码>位于if语句之后的行
如果if语句只允许该行执行两次,那么if语句的意义是什么呢?内部if上没有其他代码,因此它检查它是否为0,不执行if中的代码,然后转到System.out.println(“倒数是”+1/数字)代码>位于if语句之后的行
如果if语句只允许该行执行两次,那么if语句的意义是什么呢?内部if上没有其他代码,因此它检查它是否为0,不执行if中的代码,然后转到System.out.println(“倒数是”+1/数字)代码>位于if语句之后的行
如果if语句所做的只是允许该行执行两次,那么if语句的意义是什么呢?您使用的是1/number
,即使number是0
。其次,如果用户输入0
,则else部分应该在if块内。它应该根据您的消息转到else部分
所以应该是这样,
您正在使用1/number
即使number是0
第二,如果用户输入0
它应该根据您的消息转到else部分,您的else部分应该在if块内
所以应该是这样,
您正在使用1/number
即使number是0
第二,如果用户输入0
它应该根据您的消息转到else部分,您的else部分应该在if块内
所以应该是这样,
您正在使用1/number
即使number是0
第二,如果用户输入0
它应该根据您的消息转到else部分,您的else部分应该在if块内
所以应该是这样,
除以0错误
System.out.println("The Reciprocal is "+ 1/number);
如果数字不是0,则该行执行两次,如果数字是0,则执行一次。除以0错误
System.out.println("The Reciprocal is "+ 1/number);
如果数字不是0,则该行执行两次,如果数字是0,则执行一次。除以0错误
System.out.println("The Reciprocal is "+ 1/number);
如果数字不是0,则该行执行两次,如果数字是0,则执行一次。除以0错误
System.out.println("The Reciprocal is "+ 1/number);
如果数字不是0,则该行将执行两次,如果数字是0,则执行一次。查看您的代码
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}
System.out.println("The Reciprocal is " + 1 / number); //*
无论条件是否满足,我放置的行*将始终执行
您可以将代码更改为以下内容
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}else {
System.out.println("The Not Reciprocal is");
}
看看你的代码
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}
System.out.println("The Reciprocal is " + 1 / number); //*
无论条件是否满足,我放置的行*将始终执行
您可以将代码更改为以下内容
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}else {
System.out.println("The Not Reciprocal is");
}
看看你的代码
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}
System.out.println("The Reciprocal is " + 1 / number); //*
无论条件是否满足,我放置的行*将始终执行
您可以将代码更改为以下内容
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}else {
System.out.println("The Not Reciprocal is");
}
看看你的代码
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}
System.out.println("The Reciprocal is " + 1 / number); //*
无论条件是否满足,我放置的行*将始终执行
您可以将代码更改为以下内容
double number = stdin.nextDouble();
if (number != 0) {
System.out.println("The Reciprocal is " + 1 / number);
}else {
System.out.println("The Not Reciprocal is");
}
即使是零值,你也会尝试得到“1/number”,所以你会得到一个被零除的异常,我想这就是你的程序停止的原因。我得到的信息是,倒数是无穷大。您希望得到什么?我需要程序打印出您输入的输入无效,请重试。我可以得到任何一个=0行工作,或者hasNextDouble工作,但是我不能让它们都工作,即使是零值,你尝试得到“1/number”,所以你得到一个被零除的异常,我想这就是你的程序停止的原因。我得到消息倒数是无穷的。您希望得到什么?我需要程序打印出您输入的输入无效,请重试。我可以得到任何一个=0行工作,或者hasNextDouble工作,但我无法同时获得它们