C语言知识点十二: C循环

为了使我们的C语言表达的意思更加多元化,现在来介绍C循环

无论是我们人类的语言还是计算机高级语言,我们都希望能够尽可能地表达我们的意图或想法,让对方理解。计算机也不例外,任何一门计算机高级语言应该提供以下3种形式的控制流:

(1) 执行语句系列; //就是一般的单条表达式语句,笔者前面发的程序大部分都是都是由语句序列组成

(2) 如果满足某种条件就重复执行语句序列(循环);//靠while,do while,for循环实现此功能。为了满足同一块代码多次执行的需求

(3) 通过测试选择执行哪一个语句序列(分支)。//靠循环控制语句来实现此功能。意思就是改变代码的执行顺序,实现代码的跳转(这个知识点将发布在下一篇C语言知识点栏目中)。

好了,现在我们来学习C控制语句:循环

循环类型

 

说明

while

入口条件循环

while(值满足测试条件)

{

   处理该值

   获取下一个值

}

for

for(获得初值; 值满足测试条件; 获得下一个值)

处理该值

do  while

出口条件循环

do{

处理该值

   获取下一个值

}while(值满足测试条件);

嵌套循环

同时使用以上的循环类型两次或两次以上

为了更好地使用C循环,这里将补充一些知识:

1.关系运算符:

关系运算符

含义

小于

<=

小于或等于

==

等于

>=

大于或等于

大于

!=

不等于

 

: 这里大家要格外要注意等于的关系运算符的书写为==,由于发现很多编程人员习惯将等于写为=,所以现在的编译器大多数情况可以识别出来这种错误。

但不代表编译器都可以检查出这种错误,所以大家要牢记等号的写法。

2.什么是真:

这里大家要知道在C中表达式和关系表达式一定有一个值,要么为真,要么假。

示例一:

while(scanf(“%d”,&num) == 1)//表达式

如果键入的是数字表达式为真,值为1,否则表达式为假,值为0。

示例二:

True_val = (10> 2);

Flase_val = (10 ==2);

这里的10 > 2 和 10 == 2都是关系表达式,显然第一个表达式正确,第二个为错误,所以其各值为1和0;

因此以后遇到上面两个示例的代码写法就不要感到陌生了。

为了更加完善知识点这里再介绍一下其它真值:

请看下面的例子:

int n = 3;

while(n)//等价于n != 0 拓展一下while(!n)中的!n等价于n == 0

{

              Printf(“%d\n”, n);

              n--;

}

现在大家应该知道了,只要n为非0值,循环就继续执行。

3.新的_Bool类型:

(1)在C语言中,一直以int类型的变量表示真/假。C99专门针对这种类型的变量新增了_Bool类型。_Bool是C语言布尔变量的类型名,该类型的变量只能存储1(真)或0(假)。因此将非零数值赋给_Bool类型的变量,该变量值为1,否则为0。

(2)C99提供了stdbool.h头文件,该头文件让bool成为_Bool的别名(实际上就是在头文件里定义了:typedef _Bool bool),并将true和false分别定义为1和0的符号常量。

#include<stdio.h>
#include<stdbool.h>

int main()
{
    _Bool true_or_false;
    true_or_false = 10;
    printf("%d %d %d", true, false, true_or_false);
    return 0;
}

这里给大家用代码输出了true和false的值,以及_Bool类型的变量的值。

4.赋值运算符和逗号运算符

(1) 赋值运算符: +=, -=, *=, /=, %=

a += 20  等价于   a= a + 20

a -= 20   等价于  a = a – 20

a *= 20   等价于    a = a * 20

a /= 20   等价于   a = a /20

a %= 20   等价于   a = a %20

这里的赋值运算符只是为了书写代码更加简洁!

(2)逗号运算符:
逗号运算符扩展了for循环的灵活性,可以在循环头中包含更多的表达式。

例如:

for(i = 0, j = 10;i < 10; i++, j--)

5. 嵌套循环:

这里举一个两层循环,先看代码:

#include<stdio.h>
#define ROWS 6
#define CHARS 10

int main()
{
    int row;
    char ch;

    for(row = 0; row < ROWS;row++)
    {
        for(ch = 'A'; ch <('A' + CHARS); ch++)
        {
           printf("%c", ch);
        }
        printf("\n");
    }

    return 0;
}

 


代码解释: 这里的两层循环可以这样理解,循环6次for循环。所以打印了6行A~J。

好了,C循环的知识点大致就这些,如有不足,欢迎留言补充。

前面发布的C语言知识点都没有给大家留下练习题,从这一次开始我都会给大家留练习题,每次的练习题和答案我会分别单独发一篇博客。大家一定要自己先做,实在没思路再看答案。

C语言一定要多上机实践,只有多练,才会运用和熟练那些知识点。

笔者认为CodeBlocks编译器不错,还可以支持C99。

猜你喜欢

转载自blog.csdn.net/weixin_41588502/article/details/80587193
今日推荐