DC-4: 循环结构

来源:互联网 发布:java前后端分离 vue 编辑:程序博客网 时间:2024/06/07 08:05
int main()
{
char ch = 0;

while (ch != '\n')
{
scanf ("%c", &ch);
printf ("%c", ch);
}

return 0;
}
这是基本的从终端读入一条命令。
很好理解,scanf一次一次读,当是'\n',便不再读入。




include <stdio.h>


int main()
{
    int int_count = 0;
    int letter_count = 0;
    int space_count = 0;


    char ch;
    scanf ("%c", &ch);


    while (ch != '\n')
    {
        if (ch == ' ')
{
   space_count++;
}
else if (ch >= '0' && ch <= '9')
{
   int_count++;
}
else if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
{
            letter_count++;
}
        scanf ("%c", &ch);
    }


    printf ("int_count = %d\nletter_count = %d\nspace_count = %d\n",
    int_count, letter_count, space_count);


    return 0;
}
这段程序将读入的一条命令分别统计空格字母和数字的个数。对于第一个scanf来说,它先从缓冲区读取一个字符进行判断,结束后第二个scanf再次从缓冲区读取,执行while
语句进行判断。
比较第一个程序,对于读取顺序还是有点区别的。第一个程序ch=0;令程序进入循环。
 
在循环结构中,灵活运用break和continue可以使程序变得很简便。
break语句的功能是:
在switch语句中使流程跳出switch结构。
在循环语句中使流程跳出当前循环。
continue语句的功能是
在循环语句中使本次循环结束,即跳过循环体中下面尚未执行的语句,接着进行下次是否执行循环的判断
int main()
{
int n; 
int flag = 0;  // 0 是素数  1 不是素数
scanf ("%d", &n);


int i;
for (i = 2; i < n; i++)
{
if (n % i == 0)  // 不是素数
{
flag = 1;
break;  // 跳出当前的循环
}
}

if (flag == 1)
printf ("%d不是素数\n", n);
else
printf ("%d是素数\n", n);



return 0;
}
上面是一个简单的判断素数的程序,值得注意的使flag标志的使用。