黑马程序员技术交流社区

标题: 关于java基础学习中,第三天练习的问题 [打印本页]

作者: 海角秋风    时间: 2015-5-31 11:22
标题: 关于java基础学习中,第三天练习的问题
本帖最后由 海角秋风 于 2015-6-3 20:07 编辑

已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E。
   90~100为等级A,80~89为等级B,70~79为等级C,
   60~69为等级D,0~59为等级E。
   要求定义一个成绩变量,当成绩变化时,可直接知道该成绩对应的等级。
   例如:当成绩为100时,该学生的等级时A。

class Demo
{
        //定义一功能,通过给定分数,获取该分数对应的等级。
        /*
        1,明确该功能的结果:等级 char
        2,有没有未知内容。分数。int
        */
        public static String getLevel(int num)
        {
                char level;
                if(num>=90 && num<=100)
                        level = 'A';
                else if(num>=80 && num<=89)
                        level = 'B';
                else if(num>=70 && num<=79)
                        level = 'C';
                else if(num>=60 && num<=69)
                        level = 'D';
                else
                        level = 'E';

                return level;
        }
        public static void main(String[] args)
        {
               
                char ch = getLevel(35);
                System.out.println("level="+ch);
        }
        
}

实际运行的时候,结果显示char 和Sting之间无法转换。
将函数中返回值类型由String换成char就解决问题了。

问题是:
1、给的答案为什么用String?(应该不会给错误答案的吧?)
2、String 到底能不能代指char,达到转换的目的?(因为看到后面的答案中,貌似也有返回值类型是char,实际使用String的。)






作者: 曲终烟尽    时间: 2015-5-31 13:38
你定义的函数返回值是  String,但你实际 返回的和你定义的不同你要返回char肯定报错

你自己说你会给一个 火车票,结果最后你给人家检验员一个 汽车票,人家肯定不让你通过。

作者: 13699266500    时间: 2015-5-31 13:41
学习了!!!
作者: 曲终烟尽    时间: 2015-5-31 13:43
                  char c='a';
                  String str=String.valueOf(c);
                  System.out.println("c="+c);
                  System.out.println("str="+str);
输出:
c=a
str=a
作者: 海角秋风    时间: 2015-6-1 08:50
曲终烟尽 发表于 2015-5-31 13:38
你定义的函数返回值是  String,但你实际 返回的和你定义的不同你要返回char肯定报错

你自己说你会给一个  ...

这个是可以理解的,看来还是给的答案错误了。谢谢。




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