gpt4 book ai didi

java - 短 if 语句 "inside"短 if 语句

转载 作者:行者123 更新时间:2023-11-30 03:07:27 26 4
gpt4 key购买 nike

这是我的任务,我尝试仅使用简短的 if 语句来完成此任务,我得到的唯一错误是使用“(0.5<=ratio<2 )”,除此之外,构造正确吗? enter image description here

    Scanner scn = new Scanner(System.in);
int years,kg,cm,MenuA,MenuB,MenuC,A,B,C;
String not;
double ratio = cm/kg;
System.out.println("Please enter your age (years), weight(kg) and height(cm) in that order with spaces");
years = scn.nextInt();
kg = scn.nextInt();
cm = scn.nextInt();

MenuA = (20<years<<11||40<<years<21)&&(0.5<=ratio<2)?A:MenuB;
MenuB = (20<years<<11)&&(2<=ratio<<3.5)?B:MenuC;
MenuC = (40<<years<21)&&(2<=ratio<<3.5)?C:not;

}

}

最佳答案

20 < years < 11

这不是有效的 Java 代码。无论您首先计算哪个操作数,结果都将是 boolean 类型,它不会与 int 进行比较。

您需要长期这样做:

20 < years && years < 11

或者为此创建一个方法:

betweenExclude(20, years, 11);

boolean betweenExclude(int a, int b, int c) {
return a < b && b < c;
}

也许还有

boolean betweenIncludeLeft(double left, double number, double right) {
return left <= number && number < right;
}

就可读性/可维护性而言,您还应该考虑以一种易于转换为表格的方式编写此内容:

enum Age {
ELEVEN_TO_TWENTY,
TWENTYONE_TO_FORTY
};

Age age;
if(between(11, years, 20)) {
age = Age.ELEVEN_TO_TWENTY;
}
if(between(21, years, 40)) {
age = Age.TWENTYONE_TO_FORTY;
}

体重与高度的比例类似

然后

if(age.euqals(Age.TWENTYONE_TO_FORTY) && weightratio.equals(WeightRatio.LOW)) {
//A
}

评论

您的年龄检查应包括您的两个界限。 11岁和20岁的人必须加入,否则10岁和11岁的人就会退出。

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

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