2

我有一个应用程序可以计算你每分钟耕种的黄金。我想做一个错误报告,不允许您在控制台输入中插入任何文本,您应该在其中插入时间和黄金(如下面的代码所示)并显示一些错误消息,如果您这样做并让您重做插入(某种循环或 if/else 的事情......)希望我说清楚了,你我是新手......所以我希望你能理解。到目前为止,这是我的代码:-------------------//////////
更新问题是因为我不想为相同的代码提出一个新问题:
我如何在这段代码中将我的小时数转换为分钟,1.2 小时的浮点计算将计算为 72 分钟而不是 80 分钟。(我在下面发表了评论在问题所在的代码中)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace YourGold
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to YourGold App! \n------------------------");
            Console.WriteLine("Inesrt your gold: ");
            int gold = int.Parse(Console.ReadLine());
            Console.WriteLine("Your gold is : " + gold);
            Console.WriteLine("Inesrt your time(In Hours) played: ");
            float hours = float.Parse(Console.ReadLine());
            int minutes = 60;
            float time = (float)hours * minutes; // Here the calculation are wrong...
            Console.WriteLine("Your total time playd is : " + time + " minutes");
            float goldMin = gold / time;
            Console.WriteLine("Your gold per minute is : " + goldMin);
            Console.WriteLine("The application has ended, press any key to end this app. \nThank you for using it.");
            Console.ReadLine();

        }
    }
}

谢谢!

4

2 回答 2

8

int.Parse您可以使用,而不是使用int.TryParse,并打印一条消息:

int gold;
while(!int.TryParse(Console.ReadLine(), out gold))
{
    Console.WriteLine("Please enter a valid number for gold.");
    Console.WriteLine("Inesrt your gold: ");
}

这使您可以正确地重新提示和处理错误。

于 2013-09-18T19:24:10.847 回答
1

在控制台应用程序中,您无法控制文本输入(没有要处理的按键事件)。

这可能是一个解决方案

    Console.WriteLine("Inesrt your gold: ");
    int gold;
    while(!int.TryParse(Console.ReadLine(),out gold)){
    Console.WriteLine("Please provide a valid gold value");
    }
    Console.WriteLine("Your gold is : " + gold);
于 2013-09-18T19:31:38.067 回答