【发布时间】:2018-10-13 19:49:48
【问题描述】:
对于学校练习学校作业,我们必须创建一个小程序,该程序使用 bool 方法来计算一个数字是否为素数。它还必须检查一个数字是否为负。如果输入 0,它将停止询问数字并结束程序。 (我添加了作业截图)
我已经成功完成了 Prime 检查部分。当我输入一个负数时,它会显示:负数,之后它仍然会计算它是否是素数。结束程序也是如此。它首先计算 0 是否为质数,然后结束它。
我该如何解决?
这是我的代码:
static void Main(string[] args)
{
int entered_number = 1;
while (entered_number != 0)
{
//ask for user entry
Console.Write("enter a number: ");
entered_number = int.Parse(Console.ReadLine());
if (entered_number < 0)
{
Console.WriteLine("Number is negative");
}
//variable for subprogram
bool prime = IsPrimeNumber(entered_number);
//output
if (prime == true)
{
Console.WriteLine("Number is Prime");
}
else if (prime == false)
{
Console.WriteLine("Number is not Prime");
}
}
Console.WriteLine("End of program");
Console.ReadKey();
}
//subprogram
static bool IsPrimeNumber(int entered_number)
{
//count
int count = 0;
for (int i = 1; i <= entered_number; i++)
{
if (entered_number % i == 0)
{
count++;
}
}
if (count == 2)
{
return true;
}
else if (count != 2 && entered_number != 0)
{
return false;
}
return false;
}
如果有人知道怎么做,请告诉我。
此致,
马克斯·范科克伦
【问题讨论】:
-
一旦达到不想继续的状态,您想
break;退出循环。 -
当您检测到负数时,您没有做任何事情来终止应用程序/循环。 Navigating through Code using the Step Debugger