using System;
using System.Collections.Generic;
using System.Text;namespace ConsoleApplication1
{
    class ch0105
    {
        static void Main(string[] args)
        {
            string isVip;
            int money;            Console.WriteLine("您是会员吗?(y/n)");
            isVip = Console.ReadLine();
            Console.WriteLine("请输入您的购书金额");
            money = int.Parse(Console.ReadLine());            if (isVip=="Y"|| isVip=="y")
            {
                if (money >= 200)
                {
                    Console.WriteLine("可以打折,打折后金额为{0}", money * 0.75);
                }
                else if (money >= 100 && money < 200)
                {
                    Console.WriteLine("可以打折,打折后金额为{0}", money * 0.75);
                }
                else
                {
                    Console.WriteLine("输入错误");
                }
            }
            else if (isVip == "n" || isVip == "N")
            {
                if (money >= 100)
                {
                    Console.WriteLine("可以打折,金额为{0}", money * 0.9);
                }
                else
                {
                    Console.WriteLine("不能打折,金额为{0}", money);
                }
            }
            else
            {
                Console.WriteLine("输入错误");
            }
           
            Console.ReadLine();
        }
    }
}
以上代码 在执行isVip 判断时,如输入P 则带程序最后显示输入错误。
如何修改才能在输入不用执行所有的if判断 提示输入错误

解决方案 »

  1.   

    最简单的方法,可以在外面加一个try catch来捕获异常,在异常里提示输入错误
      

  2.   

    修改程序结构:Console.WriteLine("请输入您的购书金额");
    money = int.Parse(Console.ReadLine());挪到if里。
      

  3.   

    static void Main(string[] args)
    {
                string isVip;
                int money;            Console.WriteLine("您是会员吗?(y/n)");
                isVip = Console.ReadLine().ToLower();            if ("yn".Contains(isVip))
                {
                    Console.WriteLine("输入错误");
                    return;               
                }

                Console.WriteLine("请输入您的购书金额");
                money = int.Parse(Console.ReadLine());            if (isVip=="y")
                {
                    if (money >= 200)
                    {
                        Console.WriteLine("可以打折,打折后金额为{0}", money * 0.75);
                    }
                    else if (money >= 100 && money < 200)
                    {
                        Console.WriteLine("可以打折,打折后金额为{0}", money * 0.75);
                    }
                    else
                    {
                        Console.WriteLine("输入错误");
                    }
                }
                else
                {
                    if (money >= 100)
                    {
                        Console.WriteLine("可以打折,金额为{0}", money * 0.9);
                    }
                    else
                    {
                        Console.WriteLine("不能打折,金额为{0}", money);
                    }
                }  
                //最后的判断全删掉         
                Console.ReadLine();
            }
        }
      

  4.   

    if ("yn".Contains(isVip))修改:if (isVip != "y" && isVip != "n")