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

C#实现点数耗尽即终止,需完成所有属性输入(允许输入0)

解决方案:满足点数耗尽即停止但必须输入所有属性的需求

原代码会重复执行多轮属性输入,且无法在点数耗尽时保证所有属性都被输入。以下是重构后的代码,既保证所有属性都能被输入(允许输入0),又会在点数降至0后不再消耗剩余点数:

int pontosDisponiveis = 27;
// 定义所有需要输入的属性名称
var propriedades = new List<string> 
{ 
    "inteligência", "Força", "Fe", "Vitalidade", 
    "Energia", "Magia", "Defesa", "Vigor" 
};

Console.WriteLine("Escolha o status de sua classe:");
Console.WriteLine($"Você tem : {pontosDisponiveis} de pontos para gastar");

foreach (var prop in propriedades)
{
    int valor;
    if (pontosDisponiveis == 0)
    {
        // 点数已耗尽,只能输入0
        Console.Write($"{prop}: (apenas 0 permitido) ");
        // 确保输入有效
        while (!int.TryParse(Console.ReadLine(), out valor) || valor != 0)
        {
            Console.Write("Por favor, insira 0: ");
        }
    }
    else
    {
        Console.Write($"{prop}: ");
        // 验证输入是有效整数,且不超过剩余点数、非负
        while (!int.TryParse(Console.ReadLine(), out valor) || valor < 0 || valor > pontosDisponiveis)
        {
            Console.Write($"Por favor, insira um valor entre 0 e {pontosDisponiveis}: ");
        }
        pontosDisponiveis -= valor;
    }

    Console.WriteLine($"Você tem : {pontosDisponiveis} de pontos para gastar");
}

Console.WriteLine("Todas as propriedades foram definidas!");

代码说明:

  • 使用属性列表统一管理所有需要输入的属性,避免重复编写相同的输入逻辑,后续增减属性只需修改列表即可。
  • 针对点数耗尽的情况,强制用户输入0,确保流程继续完成所有属性的输入。
  • 加入了输入验证逻辑,防止用户输入负数、超过剩余点数的数值或非整数内容,提升程序健壮性。
  • 每输入一个属性后更新并显示剩余点数,清晰反馈当前状态。

内容的提问来源于stack exchange,提问作者Mateus Lopes Batista

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 22:40:37