我正在尝试完成某种家庭作业,应该要求输入十进制数字。如果用写。而不是文本“您需要使用遵循瑞典标准的(,)写出十进制数字”。
在这里,我希望程序循环返回,因此用户将不得不重试,直到用(,)输入十进制数字为止。
在此之后,程序将询问您要舍入到多少位小数。但是目前,我的程序只是按照瑞典标准输出了您需要使用的文本,之后是文本“您想将其舍入为多少小数位数”,如果有错误,则不会循环第一条语句。
我目前尝试更改一些内容,但通常会导致程序崩溃。我目前使用“其他休息”;到地方,代码尚未完成,但可以正常运行。需要更多代码来完成我的任务,但目前停留在循环问题上
static void Main(string[] args)
{
double value1;
int round1;
while (true)
{
Console.Write("Enter a decimal-number: ");
string StrValue = Console.ReadLine();
bool success = Double.TryParse(StrValue, out value1);
if (!success)
{
Console.WriteLine("You need to use (,) as decimal-sign according to Swedish standard!"); //From here I want a loop if . is used instead of ,
}
Console.Write("With how many decimal-numbers do you want to round it down to?: ");
string StrRound = Console.ReadLine();
bool success1 = Int32.TryParse(StrRound, out round1);
if (!success1)
{
Console.WriteLine("Only use whole numbers when rounding");
}
else break;
}
}
}
}
我希望程序在执行第一条语句后循环,但是我无法弄清楚为什么不执行该操作以及应该如何解决!
答案 0 :(得分:0)
用while循环替换if条件,请尝试以下操作:
static void Main(string[] args)
{
double value1;
int round1;
while (true)
{
Console.Write("Enter a decimal-number: ");
string StrValue = Console.ReadLine();
bool success = Double.TryParse(StrValue, out value1);
while (!success)
{
Console.WriteLine("You need to use (,) as decimal-sign according to Swedish standard!"); //From here I want a loop if . is used instead of ,
StrValue = Console.ReadLine();
success = Double.TryParse(StrValue, out value1);
}
Console.Write("With how many decimal-numbers do you want to round it down to?: ");
string StrRound = Console.ReadLine();
bool success1 = Int32.TryParse(StrRound, out round1);
if (!success1)
{
Console.WriteLine("Only use whole numbers when rounding");
}
else break;
}
}
}