Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#使用一种方法检查数字是否为素数,而不是素数或负数_C#_Loops_Methods - Fatal编程技术网

C#使用一种方法检查数字是否为素数,而不是素数或负数

C#使用一种方法检查数字是否为素数,而不是素数或负数,c#,loops,methods,C#,Loops,Methods,对于学校实习作业,我们必须创建一个小程序,使用布尔方法来计算一个数字是否为素数。它还必须检查一个数字是否为负数。如果输入0,它将停止询问号码并结束程序。(我添加了作业的屏幕截图) 我成功地完成了主要检查部分。当我输入一个负数时,它将显示:负数,之后它仍然会计算它是素数是或否。结束程序时也是如此。它首先计算0是否是素数,然后结束它 我该如何解决这个问题 这是我的代码: static void Main(string[] args) { int entered_numbe

对于学校实习作业,我们必须创建一个小程序,使用布尔方法来计算一个数字是否为素数。它还必须检查一个数字是否为负数。如果输入0,它将停止询问号码并结束程序。(我添加了作业的屏幕截图)

我成功地完成了主要检查部分。当我输入一个负数时,它将显示:负数,之后它仍然会计算它是素数是或否。结束程序时也是如此。它首先计算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;
    }
static void Main(字符串[]args)
{
输入的整数=1;
while(输入的\u编号!=0)
{
//请求用户输入
控制台。写入(“输入一个数字:”);
输入的_number=int.Parse(Console.ReadLine());
如果(输入的数字<0)
{
Console.WriteLine(“数字为负数”);
}
//子程序变量
bool prime=IsPrimeNumber(输入的编号);
//输出
if(prime==true)
{
Console.WriteLine(“数字是素数”);
}
else if(prime==false)
{
Console.WriteLine(“数字不是素数”);
}
}
控制台写入线(“程序结束”);
Console.ReadKey();
}
//子程序
静态布尔IsPrimeNumber(输入整数)
{
//计数
整数计数=0;

for(int i=1;i在
while
循环之前要求用户至少输入一次。这将确保如果他们输入的第一个数字是0,程序将按预期结束。目前,它在第一次运行时使用1,然后要求用户输入并运行所有代码。至于
if(输入的编号<0)
语句,而是将所有代码作为else添加到此if语句中,这样,如果数字为负数,您的程序只需再次请求用户输入。参见下面的示例(我省略了第一个建议,您需要自己编写一些代码:p):

while(输入的编号!=0)
{
//请求用户输入
控制台。写入(“输入一个数字:”);
输入的_number=int.Parse(Console.ReadLine());
如果(输入的数字<0)
{
Console.WriteLine(“数字为负数”);
}
其他的
{
//子程序变量
bool prime=IsPrimeNumber(输入的编号);
//输出
if(prime==true)
{
Console.WriteLine(“数字是素数”);
}
else if(prime==false)
{
Console.WriteLine(“数字不是素数”);
}
}
}
控制台写入线(“程序结束”);
Console.ReadKey();

while
循环之前,请用户至少输入一次。这将确保如果用户输入的第一个数字是0,程序将按预期结束。目前,它在第一次运行时使用1,然后要求用户输入并运行所有代码。至于您的
if(输入的编号<0)
语句,而是将所有代码作为else添加到此if语句中,这样,如果数字为负数,您的程序只需再次请求用户输入。参见下面的示例(我省略了第一个建议,您需要自己编写一些代码:p):

while(输入的编号!=0)
{
//请求用户输入
控制台。写入(“输入一个数字:”);
输入的_number=int.Parse(Console.ReadLine());
如果(输入的数字<0)
{
Console.WriteLine(“数字为负数”);
}
其他的
{
//子程序变量
bool prime=IsPrimeNumber(输入的编号);
//输出
if(prime==true)
{
Console.WriteLine(“数字是素数”);
}
else if(prime==false)
{
Console.WriteLine(“数字不是素数”);
}
}
}
控制台写入线(“程序结束”);
Console.ReadKey();

使用
执行时,您的代码将至少执行一次

 int entered_number = 0;
        do
        {
            //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 if (entered_number > 0)
            {
                Console.WriteLine(IsPrimeNumber(entered_number) ? "Number is Prime" : "Number is not Prime");
            }
            else
            {
                break;
            }
        }
        while (entered_number != 0);

        Console.WriteLine("End of program");
        Console.ReadKey();
int输入的\u编号=0;
做
{
//请求用户输入
控制台。写入(“输入一个数字:”);
输入的_number=int.Parse(Console.ReadLine());
如果(输入的数字<0)
{
Console.WriteLine(“数字为负数”);
}
否则如果(输入的编号>0)
{
Console.WriteLine(IsPrimeNumber(输入的数字)?“数字是素数”:“数字不是素数”);
}
其他的
{
打破
}
}
while(输入的_编号!=0);
控制台写入线(“程序结束”);
Console.ReadKey();

使用
执行时,您的代码将至少执行一次

 int entered_number = 0;
        do
        {
            //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 if (entered_number > 0)
            {
                Console.WriteLine(IsPrimeNumber(entered_number) ? "Number is Prime" : "Number is not Prime");
            }
            else
            {
                break;
            }
        }
        while (entered_number != 0);

        Console.WriteLine("End of program");
        Console.ReadKey();
int输入的\u编号=0;
做
{
//请求用户输入
控制台。写入(“输入一个数字:”);
输入的_number=int.Parse(Console.ReadLine());
如果(输入的数字<0)
{
Console.WriteLine(“数字为负数”);
}
否则如果(输入的编号>0)
{
Console.WriteLine(IsPrimeNumber(输入的数字)?“数字是素数”:“数字不是素数”);
}
其他的
{
打破
}
}
while(输入的_编号!=0);
控制台写入线(“程序结束”);
Console.ReadKey();

一旦达到不再希望继续的状态,您希望
中断;
退出循环。当您检测到负面消息时,您没有采取任何措施终止应用程序/循环。一旦达到不再希望继续的状态,您希望
中断;
退出循环。您没有采取任何措施终止应用程序/循环当你检测到一个负值时,e应用程序/循环。也是JU