多个条件 - java中有"cond"吗?

Unk*_*ser 1 java control-flow

作为学习编写Java的一部分,我在Web上找到了多个条件的"case"函数.

这个函数的问题在于它将参数与我用作条件的特定数字进行比较,但是如果我想每次为不同的数字范围比较参数,会发生什么呢?是否有比使用更优雅的方式很多"如果"的?更像是方案中的"cond"语法?

public class Assignment02Q03 {
public static void main(String[] args){
int grade=Integer.parseInt(args[0]);
if (grade >= 90) {
    System.out.println("A");
}else {
if (grade>=80 ){
    System.out.println("B");
}else {
    if (grade>=70){
        System.out.println("C");
    }else {
        if (grade>=60){
            System.out.println("D");
        }else { 
            System.out.println("F");
        }
        }
    }   
}   
}
Run Code Online (Sandbox Code Playgroud)

}

一定有更优雅的东西:)

谢谢!

Tom*_*ine 6

一般写成:

if (grade >= 90) {
    System.out.println("A");
} else if (grade>=80 ) {
    System.out.println("B");
} else if (grade>=70) {
    System.out.println("C");
} else if (grade>=60) {
    System.out.println("D");
} else { 
    System.out.println("F");
}
Run Code Online (Sandbox Code Playgroud)

并不是说有什么特别之处else if.该支架可以通过一个单独的语句来代替,在这一个if- else语句.缩进就像语言中的其他内容一样,但它应该很容易理解.

对于表达式,还有三元运算符:

System.out.println(
    grade>=90 ? "A" :
    grade>=80 ? "B" :
    grade>=70 ? "C" :
    grade>=60 ? "D" :
    "F"
);
Run Code Online (Sandbox Code Playgroud)


Pet*_*hev 5

其中Javaifs,switch case构造和ternary operator(这是一个缩短的if)。我猜没有什么优雅的:)