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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 .net_交流 于 2014-5-11 09:24 编辑

static void Main(string[] args)
        {
            //判断一个学生单科成绩优秀、良好、及格、不及格
            Console.WriteLine("请输入科目");
            string subject = Console.ReadLine();
            Console.WriteLine("请输入你的成绩");
            int score=0;
            try
            {
                score = Convert.ToInt32(Console.ReadLine());
            }
            catch
            {
                Console.WriteLine("请输入数字");
                Console.ReadKey();
                return;
            }
            if(score>=90)
            {   
                //分数>=90显示成绩优秀
                Console.WriteLine( subject+"成绩优秀");
            }
            else if (score >= 70)
            {
                //分数在70到90间(包含70)显示成绩良好
                Console.WriteLine(subject + "成绩良好");
            }
            else if (score >= 60)
            {
                //分数在60到70间(包含60)显示及格
                Console.WriteLine(subject + "及格");
            }
            else
            {
                //分数小于60显示不及格
                Console.WriteLine(subject + "不及格");
            }
            Console.ReadKey();

        }

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

8 个回复

倒序浏览
像你上述这样的案例最好不需要通过switch case 来 做,因为逻辑判断的时候不是每次都是10的倍数。比如我需要64以上的为A,你用switch case 来做的话会很麻烦。但是如果你上面的这个案例非要用seitch case 来做的话,这样会快一些,直接和case的值进行比较和输出了。
回复 使用道具 举报
袁晓俊 发表于 2014-5-10 22:20
像你上述这样的案例最好不需要通过switch case 来 做,因为逻辑判断的时候不是每次都是10的倍数。比如我需 ...

回答的真好,谢谢你的回答:lol
回复 使用道具 举报
能,多练习就会了
回复 使用道具 举报
把你的代码简单的改了一下,用switch就这么做。声明一个枚举用于存放等级信息,把评级方法封装,返回类型是声明的枚举类型。最后在main方法中调用评级方法,根据返回值做不同操作。这样做的好处是不至于在main方法中代码写一大坨,而且一目了然,非常清晰。代码如下,给分给分!
  1.         enum DengJi
  2.         {
  3.             YouXiu, //优秀
  4.             LiangHao, //良好
  5.             JiGe, //及格
  6.             BuJiGe //不及格
  7.         }
  8.         static DengJi PingJi(int fenshu)
  9.         {
  10.             if (fenshu >= 90)
  11.             {
  12.                 //分数>=90显示成绩优秀
  13.                 //Console.WriteLine(subject + "成绩优秀");
  14.                 return DengJi.YouXiu;
  15.             }
  16.             else if (fenshu >= 70)
  17.             {
  18.                 //分数在70到90间(包含70)显示成绩良好
  19.                 //Console.WriteLine(subject + "成绩良好");
  20.                 return DengJi.LiangHao;
  21.             }
  22.             else if (fenshu >= 60)
  23.             {
  24.                 //分数在60到70间(包含60)显示及格
  25.                 //Console.WriteLine(subject + "及格");
  26.                 return DengJi.JiGe;
  27.             }
  28.             else
  29.             {
  30.                 //分数小于60显示不及格
  31.                 //Console.WriteLine(subject + "不及格");
  32.                 return DengJi.BuJiGe;
  33.             }
  34.         }
  35.         static void Main(string[] args)
  36.         {
  37.             //判断一个学生单科成绩优秀、良好、及格、不及格
  38.             Console.WriteLine("请输入科目");
  39.             string subject = Console.ReadLine();
  40.             Console.WriteLine("请输入你的成绩");
  41.             int score = 0;
  42.             try
  43.             {
  44.                 score = Convert.ToInt32(Console.ReadLine());
  45.             }
  46.             catch
  47.             {
  48.                 Console.WriteLine("请输入数字");
  49.                 Console.ReadKey();
  50.                 return;
  51.             }
  52.             switch (PingJi(score))
  53.             {
  54.                 case DengJi.YouXiu:
  55.                     Console.WriteLine("{0}成绩优秀", subject);
  56.                     break;
  57.                 case DengJi.LiangHao:
  58.                     Console.WriteLine("{0}成绩良好", subject);
  59.                     break;
  60.                 case DengJi.JiGe:
  61.                     Console.WriteLine("{0}成绩及格", subject);
  62.                     break;
  63.                 case DengJi.BuJiGe:
  64.                     Console.WriteLine("{0}成绩不及格", subject);
  65.                     break;
  66.             }
  67.             Console.ReadKey();
复制代码



点评

辛苦辛苦  发表于 2014-5-19 23:24
这不是技术分来了吗?只要你认真回答,版主会看到的。(有时忙,没来得及加分了)  发表于 2014-5-19 07:24

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
二楼说的不错!而且成绩不光是整数吧!
回复 使用道具 举报
林枫 发表于 2014-5-11 02:48
把你的代码简单的改了一下,用switch就这么做。声明一个枚举用于存放等级信息,把评级方法封装,返回类型是 ...

不错,运用好多知识。谢谢回答
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马