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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhiyuan0932 中级黑马   /  2014-9-16 10:03  /  1804 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

已知学生成绩以100分为满分,共分5个等级:A,B,C,D,E。
   90~100为等级A,80~89为等级B,70~79为等级C,
   60~69为等级D,0~59为等级E。
   要求定义一个成绩变量,当成绩变化时,可直接知道该成绩对应的等级。
   例如:当成绩为100时,该学生的等级时A。else if(x>=90&x<=100)*/
       
class demo
{
        public static void getLevel(int x)
        {
                char level;
                if(x>=90&x<=100);
                level='A';
                else if(x>=80&x<90)
                level='B';
                else if(x>=70&x<80)
                level='C';
                else if(x>=60&x<70)
                level='D';
                else
                     level='E';
                return level;

        }
        public static void main(String[] args)
        {
                char ch=getLevel(38);
                System.out.println("level="+ch);
        }
}
运行结果显示有if,没else??明明有啊????

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 淡定

查看全部评分

16 个回复

正序浏览
          public static void getLevel(int x)
      {
              char level;
              if(x>=90&x<=100)
              level='A';
              else if(x>=80&x<90)
              level='B';
              else if(x>=70&x<80)
              level='C';
              else if(x>=60&x<70)
              level='D';
              else
                   level='E';
              System.out.println(level);

      }
      public static void main(String[] args)
      {
              getLevel(38);
            
      }
}

楼主可以这么做 改动很小
回复 使用道具 举报
不系之舟王 发表于 2014-9-16 12:16
楼主代码有错误,首先, if(x>=90&x

恩恩,说的很对!找到根源了!
回复 使用道具 举报

不好意思把100忽略了,在前边加一个
case 10:
case 9:
回复 使用道具 举报
zhappy 发表于 2014-9-16 14:35
public class Br01 {

        /**

貌似没考虑100
回复 使用道具 举报
public class Br01 {

        /**
         * @param args
         */
        public static void main(String[] args) {
                int chengji = 59;
                String str = dengJi(chengji);
                System.out.println(str);

        }
       
        public static String dengJi(int x)
        {
                int tmp = x/10;
                String str = "";
                switch (tmp) {
                case 9:
                        str = "A";
                        break;
                case 8:
                        str = "B";
                        break;
                case 7:
                        str = "C";
                        break;
                case 6:
                        str = "D";
                        break;

                default:
                        str = "E";
                        break;
                }
                return str;
        }

}
回复 使用道具 举报
多一个;号,程序不会执行下面的条件语句
回复 使用道具 举报
楼上正解!
回复 使用道具 举报
用switch。。。case。。。结构,会简单一点
回复 使用道具 举报
楼上正解!!!!
回复 使用道具 举报
happyto1021 来自手机 中级黑马 2014-9-16 14:10:02
8#
楼上正解
回复 使用道具 举报
楼上正解
回复 使用道具 举报
楼主的这个if -else-if语句的格式使用错误。其一、if右边的参数列表后不应该出现“;”;其二、你写的分明是带参函数,可以getLevel(int x)前面是void无返回值类型;其三、if-else语句内也并未出现return 返回int x;
给你讲一个简单的方法,你把getLevel(int x)中的参数去掉,在if-else语句中写:System.out.println("A");然后B/C/D/``
部分代码如下:  public static void getLevel()
        {
      
                if(x>=90&x<=100);
                System.out.println("A");
                else if(x>=80&x<90)
              System.out.println("B");
               ··································
回复 使用道具 举报
MeryStyle 来自手机 中级黑马 2014-9-16 12:45:47
报纸
可以考虑使用switch……case语句。
回复 使用道具 举报
楼上正解
回复 使用道具 举报
楼主代码有错误,首先, if(x>=90&x<=100);,if后没有“;”,再者,getlevel方法楼主定义为void,既然为空返回值,又何来return??把void改为char就好了
回复 使用道具 举报
本帖最后由 敏敏好学 于 2014-9-16 10:43 编辑

1 、if(x>=90&x<=100);   这句话后面多写了一个分号。2、void是不能返回值的  
3、没有写返回值类型
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马