条件运算符是?:。这个运算符的优先级别为高于赋值运算符和逗号运算符,低于其它运算符,且是右结合性。PS:结合性的概念:同一优先级的运算符在表达式中操作的组织方向,即:当一个运算符两侧的运算符优先级别相同时,运算对象与运算符的结合顺序。
条件运算符的嵌套是指一个条件运算符里面再放一个条件运算符,例子传送门:http://blog.youkuaiyun.com/hu_hailin/article/details/47399793
再举一个例子:
import java.util.Scanner;
/**
* 题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下
* 的用C表示。
* @author lqchen
*
*/
public class SanMuTest {
public static void main(String[] args) {
System.out.println("23232323".matches("\\d+"));
Scanner in = new Scanner(System.in);
System.out.println("请输入一个学生的成绩:");
while(in.hasNext()) {
String scoreString = in.nextLine();
if(scoreString.trim().equals("exit")){
System.out.println("退出输入!");
break;
}
if(!scoreString.toString().matches("\\d+")
|| Double.parseDouble(scoreString) < 0
|| Double.parseDouble(scoreString) > 100 ){
System.out.println("您的输入为:" + " " + scoreString + "。 请输入0-100的数字,exit字符除外");
continue;
}
double score = Double.parseDouble(scoreString);
//右结合性,先计算的后面的值,后面不加括号也是可以的
String scoreClass = (score >= 90 ? "A" : (score>=60 ? "B" : "C") );
// String scoreClass = (score >= 90 ? "A" : score>=60 ? "B" : "C" );
System.out.println("该学生的成绩等级是:" + scoreClass);
}
in.close();
}
}