A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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);
要不然为啥会出错呢

2 个回复

倒序浏览
大师求解
回复 使用道具 举报
我勒个去,脑洞大开,   (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';
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马