none
菜鸟提问,在C#学习的函数调用中,有些困惑

    问题

  • static void Main(string[] args)
            {
                //接收输入后判断其等级并显示出来
                //判断依据如下:等级 ={优(90 - 100分);良(80 - 89分);中(70 - 79分);差(60 - 69分);不及格(0 - 59分)}

                Console.WriteLine("请输入分数");
                string score = Console.ReadLine();
                int grade = GetScore(score);
                string result = GetLevel(ref grade);
                Console.WriteLine(result);
                Console.ReadKey();

            }

                
            public static int GetScore(string input)
            {
                while(true)
                {
                    try
                    {
                        int score = Convert.ToInt32(input);
                        return score;
                    }
                    catch
                    {
                        Console.WriteLine("您输入的不是分数,请重新输入");
                        input = Console.ReadLine();
                    }
                }
              
            }

            public static string GetLevel(ref int number)
            {
                while(true)
                {
                    if (number>100||number<0)
                    {
                        Console.WriteLine("您输入的分数有误,请重新输入");
                        string input = Console.ReadLine();

                        number = GetScore(input);
                    }
                    switch (number / 10)
                    {
                        case 10:
                        case 9:
                            return "优";
                        case 8:
                            return "良";
                        case 7:
                            return "中";
                        case 6:
                            return "差";
                        default:
                            return "不及格";
                    }
                }
            }

    //加下划线粗体的代码有些问题

    //首先输入120,经过if判断后,为number重新赋值,此时再次输入120时并没有再次进行if判断

    //该如何处理?

                     
    2016年2月6日 2:27

答案

全部回复

  • 你好,

    我做了一个demo,你参考一下,这个的功能,最好用个递归来实现.

    static void Main(string[] args)
            {
                //接收输入后判断其等级并显示出来
                //判断依据如下:等级 ={优(90 - 100分);良(80 - 89分);中(70 - 79分);差(60 - 69分);不及格(0 - 59分)}
                Console.WriteLine("请输入分数");
                CheckInput();
                Console.ReadKey();
            }
    
            public static void CheckInput()
            {
                int result = 0;
                string input = Console.ReadLine();
                string message = string.Empty;
                try
                {
                    result = Convert.ToInt32(input);
                    if (result > 100 || result < 0)
                    {
                        Console.WriteLine("您输入的分数有误,请重新输入");
                        CheckInput();
                    }
                    else
                    {
                        switch (result / 10)
                        {
                            case 10:
                            case 9:
                                message = "优";
                                break;
                            case 8:
                                message =  "良";
                                break;
                            case 7:
                                message = "中";
                                break;
                            case 6:
                                message = "差";
                                break;
                            default:
                                message = "不及格";
                                break;
                        }
                        Console.WriteLine(message);
                    }
                   
                }
                catch
                {
                    Console.WriteLine ("您输入的不是分数,请重新输入");
                    CheckInput();
                }
              
            }
    

    Best regards,

    Cole Wu

    2016年2月6日 6:20
    版主
  • ?????

    • 已标记为答案 Herman Liu 2016年2月9日 13:27
    • 已编辑 [-] 2018年1月11日 13:41
    2016年2月6日 7:02
  • 非常感谢
    2016年2月9日 13:24
  • 非常感谢
    2016年2月9日 13:24