否则如果在三元

时间:2016-05-06 16:25:59

标签: java if-statement ternary

我正在编写这段代码,但我不知道是否可以在三元函数中使用else if语句。

我想打印1作为1st,2打印为2nd,3打印为3rd,4-10打印为4-10。

是否有可能在三元组中完成所有操作或者这是不可能的?

 while (gradeCounter <= 10){

        System.out.printf(gradeCounter==1?"Enter %dst grade: ":"Enter %dth grade : ", gradeCounter);
        //how can I do "else if" in ternary function
        int grade = input.nextInt();
        total = total + grade;
        gradeCounter = gradeCounter + 1;
    }

1 个答案:

答案 0 :(得分:2)

如果您的成绩在1到10之间,那么您可以使用sufixArray,对于高于10的数字,您需要将x1,x2和x3提升为&#34; th&#34; -cardinal ending

实施例

String[] cardinalSufixes = new String[]{ "th", "st", "nd", "rd", "th", "th", "th", "th", "th", "th" };
for (int i = 1; i <= 10; i++) {
    System.out.printf("Enter %d%s grade: \n", i, cardinalSufixes[i % 10]);
}

使用此代替嵌套三元运算符的优点是 cyclomatic complexity ,如果后者想要更改嵌套代码中的任何逻辑条件,则破坏代码的概率更高比仅使用模运算时。

该代码段将打印出来:

  

进入一年级:进入二年级:进入三年级:进入四年级:   进入五年级:进入六年级:进入七年级:进入八年级:   进入9年级:进入10年级:

这是您正在寻找的基本订单......