对于学校实习学校作业,我们必须创建一个小程序,该程序使用布尔方法来计算数字是否为质数。它还必须检查数字是否为负。如果输入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;
}
如果有人知道怎么办,请让我知道。
您真诚的
Max van Kekeren
答案 0 :(得分:1)
在while
循环之前,请用户至少输入一次。这将确保如果他们输入的第一个数字为0,程序将按预期结束。当前,它在第一次运行时使用1,然后要求用户输入并始终运行所有代码。至于您的if (entered_number < 0)
语句,宁愿将所有代码作为else语句放置到此if语句中,以便如果数字为负数,则程序只要求用户再次输入即可。参见下面的示例(我省略了第一个建议,您需要自己进行一些编码:p):
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");
}
else
{
//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();
答案 1 :(得分:1)
使用# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
,您的代码将至少执行一次。
do while