You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

保险报价程序求助:报价变量无法随输入参数递增

保险报价程序报价不更新的问题修复

核心问题分析

  • 报价变量未实际更新:你在判断性别后,仅计算了Quote + 250或Quote + 175的数值,但没有把结果重新赋值给Quote变量,导致原变量值始终保持初始的250。
  • 性别判断逻辑错误:if (Gender != "male" || Gender != "Male") 这个条件永远为真——任何输入不可能同时等于"male"和"Male",应该用&&或者统一转成小写/大写后判断。
  • 健康状况的报价调整未实现:代码里注释了// Quote + 50%,但没有编写实际执行该逻辑的代码。
  • 年龄因素未参与报价计算:你定义了年龄变量,但没有用它来调整报价。

修复后的完整代码

using System;

namespace Insurance
{
    internal class Insurance
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Nationwide Heath Insurance Co.\n");

            int CustomerID = 1;
            int Age;
            int Quote = 250; // 基础报价
            string Eir, Gender, FirstName, LastName, UserAge;
            bool ConditionBool;

            Console.WriteLine("请输入你的名字:");
            FirstName = Console.ReadLine();
            Console.WriteLine("请输入你的姓氏:");
            LastName = Console.ReadLine();
            Console.WriteLine("请输入你的性别:");
            Gender = Console.ReadLine();

            // 统一转小写判断性别,并更新报价
            if (!string.IsNullOrEmpty(Gender))
            {
                string lowerGender = Gender.ToLower();
                if (lowerGender == "male")
                {
                    Quote += 250;
                }
                else if (lowerGender == "female")
                {
                    Quote += 175;
                }
                // 可按需添加其他性别的处理逻辑
            }

            Console.WriteLine("请输入你的年龄:");
            UserAge = Console.ReadLine();
            if (int.TryParse(UserAge, out Age))
            {
                // 示例:40岁以上报价加100,可根据需求调整规则
                if (Age > 40)
                {
                    Quote += 100;
                }
            }
            else
            {
                Console.WriteLine("年龄输入无效,将使用默认年龄系数。");
            }

            Console.WriteLine("请输入你的地址(eircode):");
            Eir = Console.ReadLine();
            if (!string.IsNullOrEmpty(Eir))
            {
                Eir = Eir.ToUpper();
            }

            string BadConditions = "你是否有既往病史?( y/n )";
            Console.WriteLine(BadConditions);
            ConditionBool = AskCondition(ref BadConditions);

            // 处理健康状况的报价调整:加50%
            if (ConditionBool)
            {
                Quote = (int)(Quote * 1.5);
            }

            Console.WriteLine($"报价ID: {CustomerID}\n");
            Console.WriteLine($"姓名: {FirstName} {LastName}");
            Console.WriteLine($"年龄: {Age}");
            Console.WriteLine($"性别: {Gender}");
            Console.WriteLine($"地址: {Eir}");
            Console.WriteLine($"既往病史: {BadConditions}");
            Console.WriteLine($"最终报价: {Quote}");
        }

        private static bool AskCondition(ref string BadConditions)
        {
            bool ConditionBool;
            while (true)
            {
                string ConditionAnswer = Console.ReadLine();
                if (!string.IsNullOrEmpty(ConditionAnswer))
                {
                    ConditionAnswer = ConditionAnswer.ToLower();
                    if (ConditionAnswer == "y")
                    {
                        ConditionBool = true;
                        Console.WriteLine("请用逗号分隔你的病史情况:");
                        BadConditions = Console.ReadLine();
                        break;
                    }
                    else if (ConditionAnswer == "n")
                    {
                        ConditionBool = false;
                        break;
                    }
                }
                Console.WriteLine("只能输入 y 或 n!");
            }
            return ConditionBool;
        }
    }
}

关键修改说明

  • 更新报价变量:把Convert.ToInt32(Quote + 250)改成Quote += 250,直接将计算结果赋值回变量,实现数值更新。
  • 修正性别判断逻辑:将输入转成小写后判断,既避免大小写敏感问题,也修正了原逻辑的错误。
  • 实现健康状况调整:在获取病史判断结果后,根据布尔值给报价增加50%。
  • 添加年龄因素处理:增加了年龄判断示例(40岁以上加100),你可以根据作业要求调整具体规则。
  • 输入校验优化:添加了空值和无效输入的处理,避免程序因异常输入崩溃。

内容的提问来源于stack exchange,提问作者DrHelix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 21:17:18