黑马程序员技术交流社区

标题: 帮我看看这个小代码,哪错了 [打印本页]

作者: kakasa    时间: 2014-7-31 17:08
标题: 帮我看看这个小代码,哪错了
本帖最后由 kakasa 于 2014-8-2 19:46 编辑

class  KaoshiDengji
{
        public static void HuoquDengji(int Fenshu)
        {
                        if (Fenshu<0&Fenshu>100)
                        {
                                System.out.println("非法分数");
                        }
                         else if (Fenshu<60)
                            {
                                System.out.println("E 不及格");
                            }
                         else if (Fenshu>=60&Fenshu<70)
                                {
                                 System.out.println("D 及格");
                                }
                         else if(Fenshu>=70&Fenshu<80)
                                {
                                 System.out.println("C 中等");
                                }
                         else if(Fenshu>=80&Fenshu<90);
                                {
                                        System.out.println("B 良好");
                                }
                        else
                                {
                                        System.out.println("A 优秀");
                                }
        
                }
        }
        public static void main(String[] args)
        {
                HuoquDengji(86);
        }
}


作者: 渴望学习    时间: 2014-7-31 17:19
main 方法里面调用的方式不对 应该是 KaoshiDengji. HuoquDengji(86)  静态方法是要类名调用的
作者: icris    时间: 2014-7-31 17:22
else if(Fenshu>=80&Fenshu<90);

多了一个分号 ;
作者: icris    时间: 2014-7-31 17:23
还多了一个 } …
作者: 肖岩    时间: 2014-7-31 17:24
你的标识符真的很让人蛋疼啊,最后一个else if后面多了一个  ;
作者: kakasa    时间: 2014-7-31 17:29
渴望学习 发表于 2014-7-31 17:19
main 方法里面调用的方式不对 应该是 KaoshiDengji. HuoquDengji(86)  静态方法是要类名调用的 ...

哦哦 对
作者: li963309584    时间: 2014-7-31 18:39
  if (Fenshu<0&Fenshu>100) 少了个&
调用方法也不对,这种问题不难,自己挑挑就能出来,
作者: icris    时间: 2014-7-31 18:45
li963309584 发表于 2014-7-31 18:39
if (Fenshu100) 少了个&
调用方法也不对,这种问题不难,自己挑挑就能出来, ...

&也可以用,效果一样
一个 class 里面调用静态方法怎么会需要加类名…
作者: chensuyu    时间: 2014-7-31 18:57
。。。。。。。。。。。。。。。。。。。
作者: 梦里听传说    时间: 2014-7-31 18:58
class  KaoshiDengji
{
        public static void HuoquDengji(int Fenshu)
        {
                        if (Fenshu<0&Fenshu>100)
                        
                                System.out.println("非法分数");
                        
                         else if (Fenshu<60)
                           
                                System.out.println("E 不及格");
                           
                         else if (Fenshu>=60&Fenshu<70)
                                
                                 System.out.println("D 及格");
                                
                         else if(Fenshu>=70&Fenshu<80)
                                
                                 System.out.println("C 中等");
                                
                         else if(Fenshu>=80&Fenshu<90)
                                
                                        System.out.println("B 良好");
                                
                        else
                                
                                        System.out.println("A 优秀");
                                
        
          }
        
        public static void main(String[] args)
        {
                HuoquDengji(86);
        }
}


  改好了
作者: 梦里听传说    时间: 2014-7-31 18:59
你的程序就是 多写一个大括号 和一个分号
作者: yuli2039    时间: 2014-7-31 19:33
li963309584 发表于 2014-7-31 18:39
if (Fenshu100) 少了个&
调用方法也不对,这种问题不难,自己挑挑就能出来, ...

兄台,这个函数和主函数定义在同一个类中,调用可以不用类名的
如果单独封装一个类才需要类名调用
作者: 戒风    时间: 2014-7-31 19:54
来看看,,,,
作者: 辻方慑    时间: 2014-7-31 20:30
能好好用下英语会更好 代码每行加注释 这太不规范了 用Eclipse试下
作者: li963309584    时间: 2014-8-1 09:11
icris 发表于 2014-7-31 18:45
&也可以用,效果一样
一个 class 里面调用静态方法怎么会需要加类名…

额,。。。。。。
作者: a6511631    时间: 2014-8-1 09:19
编译能通过?
作者: 禅伤    时间: 2014-8-1 09:35
我想说楼主英语真是有待提高,你这样命名很不专业
作者: 禅伤    时间: 2014-8-1 09:51
第一个应该是fenshu<0||fenshu>100
作者: liubea    时间: 2014-8-1 14:38
逻辑运算符出错,&应该改写为&&。
作者: LFW    时间: 2014-8-1 15:58
class  TestLevel
{
        public static void getLevel(int Fenshu)
        {
            if (Fenshu<0&Fenshu>100)
                                {
                  System.out.println("非法分数");
                                }
            else if (Fenshu<60)
                                {
                  System.out.println("E 不及格");
                }
            else if (Fenshu>=60&Fenshu<70)
                {
                   System.out.println("D 及格");
                }
           else if(Fenshu>=70&Fenshu<80)
                {
                                    System.out.println("C 中等");
                }
           else if(Fenshu>=80&Fenshu<90)
                {
                    System.out.println("B 良好");
                }
           else
               {
                    System.out.println("A 优秀");
               }

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


作者: LFW    时间: 2014-8-1 16:09
说说你的问题。第一,不要再用空格键乱排版了。。看着跟团麻绳一样,太恶心。老毕说用tab,你就用tab。第二使用 {} 建议成对出现,不要先打{,然后写完代码再打}。第三,这里是同一个类中的静态方法,不需要使用类名.方法 来调用。第四,这里可以不用&&,使用&的效果一样(&跟&&的差别再与,使用&&时如果左边为假右边就不用运算,提高了运行效率)。
作者: 钟伟    时间: 2014-8-1 16:21
怎么看都不专业的样子
作者: kakasa    时间: 2014-8-2 09:54
LFW 发表于 2014-8-1 16:09
说说你的问题。第一,不要再用空格键乱排版了。。看着跟团麻绳一样,太恶心。老毕说用tab,你就用tab。第二 ...

多谢建议 ,刚开始代码没这么乱第一次编译错了之后改着改着就变得更乱七八糟了。。。
看了十来天视频就这点结果, 万年学渣自学真是费劲,哎 {:3_65:}
作者: shuimu_88    时间: 2014-8-2 10:49
感觉用switch好点,
  1. class TestLevel
  2. {
  3.         public static void getLevel(int grade)
  4.         {

  5.                 switch(grade/10)
  6.                 {
  7.                         case 0:
  8.                         case 1:
  9.                         case 2:
  10.                         case 3:
  11.                         case 4:
  12.                         case 5:
  13.                                 System.out.println("E 不及格");
  14.                                 break;
  15.                         case 6:
  16.                                 System.out.println("D 及格");
  17.                                 break;
  18.                         case 7:
  19.                                 System.out.println("C 中等");
  20.                                 break;
  21.                         case 8:
  22.                                 System.out.println("B 良好");
  23.                                 break;
  24.                         case 9:
  25.                                 System.out.println("A 优秀");
  26.                                 break;
  27.                         case 10:
  28.                                 if(grade%10==0)
  29.                                 {
  30.                                         System.out.println("A 优秀");
  31.                                         break;
  32.                                 }
  33.                                 else
  34.                                 {
  35.                                         System.out.println("非法分数");
  36.                                         break;
  37.                                 }
  38.                         default:
  39.                                 System.out.println("非法分数");
  40.                                 break;

  41.                 }
  42.         }
  43.         public static void main(String[] args)
  44.         {
  45.                 getLevel(101);
  46.         }
  47. }
复制代码

作者: meibinlove    时间: 2014-8-2 15:41
你就不能用多路分支switch写
作者: 烟海    时间: 2014-8-2 16:03
禅伤 发表于 2014-8-1 09:51
第一个应该是fenshu100

终于看到回复这个的了。。。。
明明是或,怎么会是与,楼上几个人竟然都没发现这个。。。

作者: /aiq玩完?/aiq    时间: 2014-8-2 16:17
main{//函数中先:
KaoshiDengji ksdj=new KaoshiDengji;
ksdj.HuoquDengji();//括号里是分数参数

作者: LFW    时间: 2014-8-2 16:30
kakasa 发表于 2014-8-2 09:54
多谢建议 ,刚开始代码没这么乱第一次编译错了之后改着改着就变得更乱七八糟了。。。
看了十来天视频就这 ...

你是这个专业的吗?
作者: LFW    时间: 2014-8-2 16:31
shuimu_88 发表于 2014-8-2 10:49
感觉用switch好点,

虽然我也想建议swith,但人家应该是想用if实现,可能他就是要用if来实现
作者: kakasa    时间: 2014-8-2 18:01
标题: RE: 帮我看看这个小代码,哪错了
LFW 发表于 2014-8-2 16:30
你是这个专业的吗?

不是,通信工程今年刚毕业 ,一直都没认真学过什么东西,算是给自己一个奋斗的机会吧,现在看视频好有压力,总是没法把心静下来,看完就忘。。

好吧 挺败家的,别打击我。
作者: LFW    时间: 2014-8-2 18:11
kakasa 发表于 2014-8-2 18:01
不是,通信工程今年刚毕业 ,一直都没认真学过什么东西,算是给自己一个奋斗的机会吧,现在看视频好有压 ...

我也差不多,有目标了,晚也比没有好。
作者: 碎流    时间: 2014-8-2 19:41
kakasa 发表于 2014-8-2 09:54
多谢建议 ,刚开始代码没这么乱第一次编译错了之后改着改着就变得更乱七八糟了。。。
看了十来天视频就这 ...

别灰心兄弟,我也是这样的,
作者: 碎流    时间: 2014-8-2 19:42
26正解         




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