它只是显示这个而不是我发出的错误警告:
这就是我想要的样子:
这是我的代码:
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");
}
它抛出异常的原因是你传入了一个无效的数字字符串并尝试解析它。 (即“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
你可以尝试:
if (int.TryParse(input, out tinggi))
{
...code here
}
else
{
Console.WriteLine("something in that language");
}