gpt4 book ai didi

java - 这个 if 语句有问题

转载 作者:行者123 更新时间:2023-12-02 03:21:02 25 4
gpt4 key购买 nike

我正在使用 Java 进行编码并使用 TextPad 编辑器。

我正在尝试编写代码,根据用户是男性还是女性将“r”设置为某个值。我已经要求用户如果是男性则输入“1”,如果是女性则输入“2”。

我已将 r 设置为 double 。D 和重量已由用户在前面的代码中定义。

这是我尝试使用的代码,它一直给我一个错误,说我没有定义“r”。

if (gender == 1)
r = 0.73D;
if (gender == 2)
r = 0.66D;
else
System.out.println("Please enter 1 or 2 for male or female.");

alcoholAbsored = (3.701*D)/(weight*r);

所有的代码都会编译,直到我得到alcoholAbsorbed 的公式,然后告诉我r 没有定义。从技术上讲,当我编译时,if/else 语句没有问题,但当我尝试使用 r 时,就会出现问题。我现在已经使用了这段代码,但这并不是我真正想要的,因为如果用户输入 1 或 2 以外的内容怎么办?

if (gender == 1)
r = 0.73D;
else
r = 0.66D;

alcohol absorbed = (3.701*D)/(weight*r);

有人可以告诉我我做错了什么以及我该如何解决它吗?请并谢谢您!

最佳答案

您的代码的问题是,在第一个版本中,如果它转到 else block (即使用户输入了 1,它也会这样做),那么 r 将不会被初始化,因此下一行它找不到任何值。正确的代码应该是这样的:

if (gender == 1)
r = 0.73D;
else if (gender == 2)
r = 0.66D;
else {
r = -1D;
System.out.println("Please enter 1 or 2 for male or female.");
}
if ( r != -1D)
alcoholAbsored = (3.701*D)/(weight*r);

或者:

if (gender == 1 || gender == 2){
if (gender == 1)
r = 0.73D;
else
r = 0.66D;
alcoholAbsored = (3.701*D)/(weight*r);
}
else
System.out.println("Please enter 1 or 2 for male or female.");

关于java - 这个 if 语句有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39606950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com