1000,R3=-6ren">
gpt4 book ai didi

java - 为 Excel 嵌套 if 语句编写 Java 嵌套 if 语句?

转载 作者:行者123 更新时间:2023-12-01 12:14:26 33 4
gpt4 key购买 nike

我正在尝试将 Excel 嵌套 IF 语句转换为代码语言,但我不确定我是否正确执行此操作,希望能得到一些帮助

这是Excel语句:

=IF(D3="Feather",IF(OR(I3>1000,R3="n/a"),"",IF(W3="F","F",IF(AND(I3<=1000,R3>8),"F","P"))),"")

我的代码:

if( D3 == "Feature"){
if (I3>1000 || R3 =="n/a") {

} else if (W3=="F"){
"F"
} else if( I3<=1000 && R3>8){
"F"
} else {
"P"
}
}

谢谢

最佳答案

您确实正确地解释了 Excel 公式,但有三件事阻止您的代码成为“正确的 Java”。

  • 类似 "P" 的表达式, "F"等等,单独坐在 { 之间并没有任何效果。和} 。 Excel 公式的特点是它实际上有一个值;这就是Java系列if的东西和else声明实际上没有。如果您想要一个值,您可以将所有这些编写为返回值的 Java 方法,也可以使用三元运算符 ? :创建具有您想要的值的单个表达式。
  • 要比较 Java 中的字符串,您几乎总是希望使用 equals方法,而不是 ==运算符(operator)。原因是两个不同的String对象可能具有相同的值;但在这种情况下,==将返回false对于他们来说,但是equals将返回 true。
  • 不清楚是什么类型 R3是。在某一时刻,您将其视为其类型为 String ,而在另一点上,您将其视为数字变量。与 Excel 公式不同,Java 中的任何表达式都具有明确定义的数据类型。

将公式翻译成 Java 表达式,并注意这三个问题,我们得到这样的结果。

d3.equals("Feather") ? 
((i3 > 1000 || r3.equals("n/a")) ? "" :
w3.equals("F") ? "F" :
(i3 <= 1000 && Integer.parseInt(r3) > 8) ? "F" : "P" ) : ""

但这有点难以阅读,因为三元运算符太多了。大多数人更喜欢将其编写为一种方法,如下所示。

public String excelFormula(String d3, int i3, String r3, String w3) {
if (d3.equals("Feather")) {
if (i3 > 1000 || r3.equals("n/a")) {
return "";
} else if (w3.equals("F")) {
return "F";
} else if (i3 <= 1000 && Integer.parseInt(r3) > 8) {
return "F";
} else {
return "P";
}
} else {
return "";
}
}

关于java - 为 Excel 嵌套 if 语句编写 Java 嵌套 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27098584/

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