0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言-语句(if,for,while.....)

DS小龙哥-嵌入式技术 来源:DS小龙哥-嵌入式技术 作者:DS小龙哥-嵌入式技 2022-08-14 10:00 次阅读

一、前言

这篇文章作为C语言基础知识点,介绍C语言常用的几个语句的用法、规则、使用案例。

介绍的语句如下:

if..else 判断语句
for循环语句
while循环语句
do..while循环语句
switch 语句
goto 语句
return 语句
break 语句
continue 语句

第二章介绍语法使用规则、使用案例,第三章列出了一些练习题,用于结合第二章介绍的语句完成知识点巩固。

二、知识点与案例代码

2.1 if语句语法规则、使用案例

if语句语法:

//形式1
if(<条件表达式>)  //条件为真的时候执行
{
    ...执行的代码..
}

//形式2
if(<条件表达式>)  //条件为真的时候执行
{
    ...执行的代码..
}
else  //条件为假的时候执行  (else的语句块可以选择的,可以写也可以不写)
{
   
}

//形式3
if(<条件表达式>)  //条件为真的时候执行
{
    ...执行的代码..
}
else if(<条件表达式>)  //条件为假的时候执行  (else的语句块可以选择的,可以写也可以不写)
{
    ...执行的代码..
}
else if(<条件表达式>)
{
    ...执行的代码..
}
........   

<条件表达式> 里可以写什么代码? 写的语句执行完必须返回具体的结果。
比如:12>34
比如: if(printf("12345"))

使用案例

#include 
int main(int argc,char *argv[])
{   
    int a=100;
    int b=20;
    int c=30;
    if(a>b)
    {
        printf("a>b\n");
    }

    if(a>b)printf("a>b\n");

    //容易出错的地方
    if(a==0)  //if(a=0)
    {
        printf("a>b  a>c\n");
    }

     //容易出错的地方
    if(a&&b)//if(a&0)
    {
        printf("a>b  a>c\n");
    }
    return 0;
}

/*
逗号、分号
逗号:间隔符号。  比如:  int a,b,c,d;

!  逻辑非
&& 逻辑与  -- 并且
|| 逻辑或  --或者

& 按位与(3&1)、取地址(&a)
* 乘号(a*b)  、指针(*a)、 *(块注释)
*/


#include 
int main(int argc,char *argv[])
{   
    int year;
    printf("输入年份:");
    scanf("%d",&year);

    //判断平年和闰年  条件:能被4整除并且不能被100整除  条件2:能被400整除
    if((year%4==0 && year%100!=0) || (year%400==0))
    {
        printf("闰年\n");
    }
    else
    {
        printf("平年\n");
    }

   //判断平年和闰年  条件:能被4整除并且不能被100整除  条件2:能被400整除
    if(year%4==0 && year%100!=0)
    {
        printf("闰年\n");
    }
    else if(year%400==0)
    {
        printf("闰年\n");
    }
    else
    {
        printf("平年\n");
    }
    return 0;
}

2.2 while、do..while语句

    //循环语句
    while(<条件表达式>)
    {
        ...执行的代码..
    }

    do
    {
       ...执行的代码..
}while(<条件表达式>);

#include 
int main(int argc,char *argv[])
{   
    int a=5;
    int b=5;
    //循环语句   a-- 、a=a-1、a-=1;
    while(a--)
    {
       printf("a=%d\n",a);//4\3\2\1\0
    }

    //循环语句
    do
    {
       printf("a=%d\n",b);//\5\4\3\2\1\0
    }while(b--);
    
    return 0;
}

2.3 for语句

#include 
int main(int argc,char *argv[])
{   
    int a=0;
    //写法1
    for(<初始化语句>;<条件表达式>;<自增/自减>)
    {

    }
    比如:
    for(a=0;a<10;a++)
    {

    }

    //写法2
    for(;<条件表达式>;<自增/自减>)
    {

    }
    比如:
    for(;a<10;a++)
    {

    }
    //写法3
    for(;;)  //条件永远为真
    {

    }
    等价于
    while(1)//条件永远为真
    {

    }
    return 0;
}

#include 
int main(int argc,char *argv[])
{   
    //打印99乘法口诀表
    int i,j;
    for(i=1;i<=9;i++)
    {
        for(j=1;j<=i;j++)
        {
            printf("%dx%d=%2d ",i,j,i*j);
        }
        printf("\n");
    }
    return 0;
}
/*
1x1=1
2x1=1 2x2=4....
3x1=1 3x2=6 3x3=9 .....
................
*/

2.4 break语句

作用: 跳出当前的一层循环,或者跳出switch语句。

#include 
int main(int argc,char *argv[])
{   
    int i,j,cnt=1;
    for(i=0;i<5;i++)
    {
        for(j=0;j<10;j++)
        {
            if(j==5)
            {
                break;  //跳出当前一层循环
            }
            printf("cnt=%d\n",cnt++);  //25 
        }
    }
    return 0;
}

2.5 goto跳转语句

可以在函数内设置标签,任意跳转。

#include 
int main(int argc,char *argv[])
{   
    int i,j,cnt=1;
    for(i=0;i<5;i++)
    {
        for(j=0;j<10;j++)
        {
            if(j==5)
            {
                goto AA;  //跳转语句
            }
            printf("cnt=%d\n",cnt++);  //5
        }
    }
AA:
    printf("程序执行完毕.\n");
    return 0;
}

2.6 continue语句

跳出本次循环,继续执行下一次新的循环。

#include 
int main(int argc,char *argv[])
{   
    int i,j,cnt=1;
    for(i=0;i<5;i++)
    {
        for(j=0;j<10;j++)
        {
            if(j==5)
            {
               continue; //跳出当前一次循环
            }
            printf("cnt=%d\n",cnt++); //
        }
    }
    return 0;
}

2.7 switch 分支语句(C89标准和C99标准)

#include 
int main(int argc,char *argv[])
{   
    int a;
    scanf("%d",&a);
    switch(a)
    {
    case 1:
        printf("选择1.\n");
        break;
    case 2:
        printf("选择2.\n");
        break;
    case 3:
        printf("选择3.\n");
        break;
    case 4:
    case 5:
    case 6:
        printf("选择4,5,6\n");
        break;
    default:
        printf("选择默认值.\n");
        break;
    }
    return 0;
}

三、练习题

3.1 输入整数,然后使用二进制方式输出(数据传输)

0x23; ---8次  00100011
#include
int main()
{
    unsigned int a,i;
    int flag=0;
    printf("输入整数:");
    scanf("%d",&a);
    for(i=0;i<32;i++)
    {
        //if(a&0x1) //从低位开始判断
        //if(a&0x80000000)  //从高位开始判断
        if(a&(1<<31)) //从高位开始判断
        {
            flag=1;
            printf("%d",1);
        }
        else
        {
            if(flag)
            {
                printf("%d",0);
            }
        }
        a<<=1; //把a的左边移动 (高位溢出、低位补0)
    }
    printf("\n");
    return 0;
}

3.2 打印所有水仙花数。

所谓水仙花是指一个三位数,其各位数字的立方和等于该数

#include 
int main()
{
    int i;
    int a, b, c;
    for (i = 100; i <= 999; i++)
    {
        a = i / 100;
        b = i % 100 / 10;
        c = i % 10 / 1;
        if ((a*a*a + b*b*b + c*c*c) == i)
        {
            printf("%d ", i);
        }
    }
    return 0;
}

3.3 百元买百鸡

公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,问一百元买一百只鸡有几种买法。

#include
int main()
{
    int m, g, x;
    int m_max;
    int g_max;
    int x_max;
    int q, cnt; //cnt=数量 q:钱
    printf("公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元\n");
    printf("请输入要买鸡的数量:\n");
    scanf("%d", &cnt);// 100 100
    printf("请输入要买鸡的钱:\n");
    scanf("%d", &q);// 100 100
    /*1. 判断输入的数据是否合理*/
    if (q>0 && cnt>0)
    {
        m_max = cnt / 3; // 母鸡 100 /3 =33
        g_max = cnt / 5; // 公鸡 100 /5 =20
        x_max = (cnt / 1) * 3; // 小鸡 100 /1*3 =300
        for (g = 0; g;>

3.4 打印正三角形

#include
/*
  1
 121
 12321
1234321
*/
int main()
{
    int i, j;
    int len;
    scanf("%d", &len);
    for (i = 1; i <= len; i++) //总行数
    {
        /*1. 打印空格*/
        for (j = 1; j <= len - i; j++)
        {
            printf(" ");
        }
        /*2. 打印前面一半*/
        for (j = 1; j <= i; j++)
        {
            printf("%d", j);
        }
        /*3. 打印后面一半*/
        for (j = i - 1; j >= 1; j--)
        {
         printf("%d", j);
        }
        printf("\n");
    }
    return 0;
}

3.5 打印倒三角形

#include
int main()
{
    int i, j;
    int len;
    scanf("%d", &len);
    for (i = len; i >= 1; i--) //循环的总次数
    {
        /*1. 打印空格*/
        for (j = len; j>i; j--)
        {
            printf(" ");
        }
        /*2. 打印前面部分*/
        for (j = 1; j <= i; j++)
        {
         printf("%d", j);
        }
        /*3. 打印后半部分*/
        for (j = i - 1; j >= 1; j--)
        {
            printf("%d", j);
        }
        printf("\n");
    }
    return 0;
}

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7530

    浏览量

    128534
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66762
收藏 人收藏

    评论

    相关推荐

    C语言中break语句的语法和基本应用

    在C语言中,break语句是一种控制流语句,它用于终止当前所在的循环结构(for、while、do-while)或者switch
    发表于 08-17 15:35 1007次阅读

    C语言入门教程-if语句while循环

    if语句while循环 C语言中,if语句while循环都会用到布尔表达式。下面是一个使用if语句
    发表于 07-29 10:48 8339次阅读

    C语言入门C语言语句的更换技巧

    C语言中有很多条语句, 在我们以后接触到的程序中无非只有5条语句,而像do while和switch这样的语句并不常用,就只剩下if、for
    发表于 04-28 14:57 123次下载

    C++语言基础讲解视频do while循环语句

    C++语言基础讲解视频do while循环语句
    发表于 01-14 15:32 5次下载

    C++语言基础讲解视频while循环语句

    C++语言基础讲解视频while循环语句,喜欢的朋友可以下载来学习。
    发表于 01-14 15:31 3次下载

    Proteus之while语句的应用

    Proteus之while语句的应用,很好的Proteus资料,快来学习吧。
    发表于 04-18 14:49 0次下载

    Proteus之do-while语句的应用

    Proteus之do-while语句的应用,很好的Proteus资料,快来学习吧。
    发表于 04-18 14:49 0次下载

    Proteus之while语句的应用

    Proteus之while语句的应用,很好的Proteus资料,快来学习吧。
    发表于 04-18 14:49 0次下载

    C语言教程之使用while语句求n!

    C语言教程之使用while语句求n!,很好的C语言资料,快来学习吧。
    发表于 04-25 14:43 14次下载

    C语言总结_语句、运算符

    当前文章复盘C语言的: 位运算运算符、基本运算符、数据类型、变量、for语句while语句、goto语句、switch
    的头像 发表于 08-14 09:39 758次阅读

    PLC编程中循环语句FOR和WHILE如何选择

    迭代语句主要用于重复执行的程序,在 CoDeSys 中,常见的迭代语句有 FOR,REPEAT 及WHILE 语句
    的头像 发表于 01-30 17:45 1840次阅读

    C语言for语句介绍

    除了可以用while语句和do...while语句实现循环外,C语言还提供for语句实现循环,而
    的头像 发表于 03-09 11:14 829次阅读

    WHILE语句如何执行

    令“FOR”、“WHILE”和“REPEAT-UNTIL”的运行:由于系统不显示这些指令中的变量值,因此可避免对循环时间造成影响。 WHILE允许由执行条件控制的循环地执行语句序列。执行条件根据逻辑表达式的规则构成
    的头像 发表于 09-10 09:48 499次阅读
    <b class='flag-5'>WHILE</b><b class='flag-5'>语句</b>如何执行

    while和if一起用的例子c语言

    一、 在C语言中,while和if是两个非常常用的控制语句while用于创建循环结构,使得程序可以重复执行一段代码块,而if则是用于条件判断,根据不同的条件执行不同的代码块。当这两个
    的头像 发表于 11-22 10:09 1189次阅读

    c语言while中嵌套if循环

    C语言是一种广泛使用的面向过程编程语言,它提供了许多控制结构来帮助程序员实现复杂的逻辑和流程控制。其中,while循环和if语句是非常常见和重要的控制结构。本文将详细介绍C
    的头像 发表于 11-22 10:09 1546次阅读