📜  C控制语句测试3(1)

📅  最后修改于: 2023-12-03 15:00:12.324000             🧑  作者: Mango

C控制语句测试3

本篇文章将为大家介绍C语言中的控制语句测试样例3,包括while循环、if语句、break语句以及continue语句的应用。

样例介绍

以下是一段用于求1~100之间的所有质数的代码:

#include <stdio.h>

int main()
{
    int i, j, flag;
    for (i = 2; i <= 100; i++)
    {
        flag = 1;
        for (j = 2; j <= i / 2; j++)
        {
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag == 1)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

我们可以看到,程序中采用了for语句来循环1~100,判断每个数是否为质数。在判断一个数是否为质数的过程中,使用了一个嵌套的for语句,遍历该数的所有可能因子。如果找到该数的因子,就将flag标记为0,表示该数不是质数。最后,再用if语句判断flag的值,如果仍然为1,就说明该数是质数,输出该数。

接下来,我们将分别介绍使用while循环、if语句、break语句以及continue语句来实现上述功能的方法。

使用while循环实现

如果不想使用for循环,我们也可以使用while循环来实现上述功能。代码如下:

#include <stdio.h>

int main()
{
    int i = 2, j, flag;
    while (i <= 100)
    {
        flag = 1;
        j = 2;
        while (j <= i / 2)
        {
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
            j++;
        }
        if (flag == 1)
        {
            printf("%d ", i);
        }
        i++;
    }
    return 0;
}

在while循环中,我们使用了相同的变量i、j和flag,但是将原来的for循环改为了while循环。具体来说,在外层while循环中对i进行了循环,而在内层while循环中对j进行了循环。其余部分与for循环的实现相同。

使用if语句实现

在判断一个数是否为质数的过程中,我们使用了if语句来判断flag的值。而如果不想使用嵌套的for循环,我们也可以使用if语句来判断一个数是否为质数。代码如下:

#include <stdio.h>

int main()
{
    int i, j, flag;
    for (i = 2; i <= 100; i++)
    {
        flag = 1;
        for (j = 2; j < i; j++)
        {
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

在if语句中,我们将判断语句改为了if(flag),表示只有当flag为真是才执行输出语句。其余部分与for循环的实现相同。

使用break语句实现

在原来的程序中,我们使用了嵌套的for循环来判断一个数是否为质数。在找到一个因子之后,为了减少无用的判断,我们使用了break语句来跳出内层for循环。代码如下:

#include <stdio.h>

int main()
{
    int i, j, flag;
    for (i = 2; i <= 100; i++)
    {
        flag = 1;
        for (j = 2; j <= i / 2; j++)
        {
            if (i % j == 0)
            {
                flag = 0;
                break;
            }
        }
        if (flag)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

在内层for循环中,当找到一个因子时,使用break语句跳出循环;而在外层for循环中,当flag为真时,执行输出语句。其余部分与使用if语句实现的程序相同。

使用continue语句实现

在原来的程序中,我们使用了嵌套的for循环来判断一个数是否为质数。如果我们想在找到不是质数的数之后直接进入下一次循环,可以使用continue语句。代码如下:

#include <stdio.h>

int main()
{
    int i, j, flag;
    for (i = 2; i <= 100; i++)
    {
        flag = 1;
        for (j = 2; j <= i / 2; j++)
        {
            if (i % j == 0)
            {
                flag = 0;
                continue;
            }
        }
        if (flag)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

在内层for循环中,当找到一个不是质数的数时,使用continue语句跳过后续的判断,直接进入下一次循环;而在外层for循环中,当flag为真时,执行输出语句。其余部分与使用break语句实现的程序相同。

总结

通过本文的介绍,我们了解了如何使用while循环、if语句、break语句以及continue语句来实现一个求1~100之间所有质数的程序,并逐步比较了它们之间的异同点。在实践中,我们可以根据需要选择不同的方法来编写程序,以达到最佳的效果。