如果用户没有使用正确的格式,我希望它发出错误消息,但它只是显示这个

问题描述 投票:0回答:2

它只是显示这个而不是我发出的错误警告:

image

这就是我想要的样子:

image

这是我的代码:

Console.Write("Masukkan Tinggi Segitiga: ");
int tinggi = Convert.ToInt32(Console.ReadLine());

if (tinggi > 0)
{
    for (int x = 1; x <= tinggi; x++)
    {
        for (int y = 1; y <= x; y++)
        {
            Console.Write("*");
        }
        Console.WriteLine("");
    }
}
else if (tinggi <= 0)
{
    Console.WriteLine("Input tidak valid! Harus berupa angka & bilangan bulat");
}
c# for-loop visual-studio-code
2个回答
4
投票

它抛出异常的原因是你传入了一个无效的数字字符串并尝试解析它。 (即“a”不是数字。)

使用

int.TryParse()
并使用返回值来控制你的条件以输出你想要的错误消息:

Console.WriteLine("=====TP MODUL 3=====");
Console.Write("Masukkan Tinggi Segitiga: ");
var parseResult = int.TryParse(Console.ReadLine(), out var tinggi);

if (!parseResult || tinggi <= 0)
{
    Console.WriteLine("Input tidak valid! Harus berupa angka & bilangan bulat");
}
else
{
    for (int x = 1; x <= tinggi; x++)
    {
        for (int y = 1; y <= x; y++)
        {
            Console.Write("*");
        }
        Console.WriteLine();
    }
}

输出:

=====TP MODUL 3=====
Masukkan Tinggi Segitiga: a
Input tidak valid! Harus berupa angka & bilangan bulat

3
投票

你可以尝试:

if (int.TryParse(input, out tinggi))
{
    ...code here
}
else
{
    Console.WriteLine("something in that language");
}
© www.soinside.com 2019 - 2024. All rights reserved.