黑马程序员技术交流社区

标题: 难道三目不能嵌套太长吗??? [打印本页]

作者: qq812392675    时间: 2016-2-27 10:34
标题: 难道三目不能嵌套太长吗???
import java.util.Scanner;
class PaiXu{
        public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        int score = s.nextInt();
        char a;
        if(score<=100&&score>0)
        (score>90)?a = 'a:(score>=70)?a = 'b':(score >=60)?a = 'c':a = 'd';
    System.out.println(a);
要不然为啥会出错呢

作者: qq812392675    时间: 2016-2-27 10:38
大师求解
作者: 玉质彼端    时间: 2016-2-27 23:20
我勒个去,脑洞大开,   (score>90)?a = 'a:(score>=70)?a = 'b':(score >=60)?a = 'c':a = 'd'; 这是什么鬼!

(条件)?选项1:选项2,这个三目运算符是有返回值的,并且这个返回值一定要被接收的。
例如:
(1)
int score = 100;
char a = (score > 90) ? 'a' : ''; //如果score大于90分,字符变量a被赋予'a'的值,否则赋值为空字符

(2)
public char getChar(int score) {
      return (score > 90) ? 'a' : '';
}


然后,针对你的错误,建议使用if-else if - else 流程结构解决:
if (score > 90) {
    a = 'a';
} else if (score >= 70) {
    a = 'b';
} else if (score >= 60) {
    a = 'c';
} else {
    a = 'd';
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2