RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-08-14 10:00 ? 次閱讀

一、前言

這篇文章作為C語言基礎(chǔ)知識點(diǎn),介紹C語言常用的幾個(gè)語句的用法、規(guī)則、使用案例。

介紹的語句如下:

if..else 判斷語句
for循環(huán)語句
while循環(huán)語句
do..while循環(huán)語句
switch 語句
goto 語句
return 語句
break 語句
continue 語句

第二章介紹語法使用規(guī)則、使用案例,第三章列出了一些練習(xí)題,用于結(jié)合第二章介紹的語句完成知識點(diǎn)鞏固。

二、知識點(diǎn)與案例代碼

2.1 if語句語法規(guī)則、使用案例

if語句語法:

//形式1
if(<條件表達(dá)式>)  //條件為真的時(shí)候執(zhí)行
{
    ...執(zhí)行的代碼..
}

//形式2
if(<條件表達(dá)式>)  //條件為真的時(shí)候執(zhí)行
{
    ...執(zhí)行的代碼..
}
else  //條件為假的時(shí)候執(zhí)行  (else的語句塊可以選擇的,可以寫也可以不寫)
{
   
}

//形式3
if(<條件表達(dá)式>)  //條件為真的時(shí)候執(zhí)行
{
    ...執(zhí)行的代碼..
}
else if(<條件表達(dá)式>)  //條件為假的時(shí)候執(zhí)行  (else的語句塊可以選擇的,可以寫也可以不寫)
{
    ...執(zhí)行的代碼..
}
else if(<條件表達(dá)式>)
{
    ...執(zhí)行的代碼..
}
........   

<條件表達(dá)式> 里可以寫什么代碼? 寫的語句執(zhí)行完必須返回具體的結(jié)果。
比如: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");

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

     //容易出錯(cuò)的地方
    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語句

    //循環(huán)語句
    while(<條件表達(dá)式>)
    {
        ...執(zhí)行的代碼..
    }

    do
    {
       ...執(zhí)行的代碼..
}while(<條件表達(dá)式>);

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

    //循環(huán)語句
    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(<初始化語句>;<條件表達(dá)式>;<自增/自減>)
    {

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

    }

    //寫法2
    for(;<條件表達(dá)式>;<自增/自減>)
    {

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

    }
    //寫法3
    for(;;)  //條件永遠(yuǎn)為真
    {

    }
    等價(jià)于
    while(1)//條件永遠(yuǎn)為真
    {

    }
    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語句

作用: 跳出當(dāng)前的一層循環(huán),或者跳出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;  //跳出當(dāng)前一層循環(huán)
            }
            printf("cnt=%d\n",cnt++);  //25 
        }
    }
    return 0;
}

2.5 goto跳轉(zhuǎn)語句

可以在函數(shù)內(nèi)設(shè)置標(biāo)簽,任意跳轉(zhuǎn)。

#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;  //跳轉(zhuǎn)語句
            }
            printf("cnt=%d\n",cnt++);  //5
        }
    }
AA:
    printf("程序執(zhí)行完畢.\n");
    return 0;
}

2.6 continue語句

跳出本次循環(huán),繼續(xù)執(zhí)行下一次新的循環(huán)。

#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; //跳出當(dāng)前一次循環(huán)
            }
            printf("cnt=%d\n",cnt++); //
        }
    }
    return 0;
}

2.7 switch 分支語句(C89標(biāo)準(zhǔn)和C99標(biāo)準(zhǔn))

#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("選擇默認(rèn)值.\n");
        break;
    }
    return 0;
}

三、練習(xí)題

3.1 輸入整數(shù),然后使用二進(jìn)制方式輸出(數(shù)據(jù)傳輸)

0x23; ---8次  00100011
#include
int main()
{
    unsigned int a,i;
    int flag=0;
    printf("輸入整數(shù):");
    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(bǔ)的左邊移動 (高位溢出、低位補(bǔ)0)
    }
    printf("\n");
    return 0;
}

3.2 打印所有水仙花數(shù)。

所謂水仙花是指一個(gè)三位數(shù),其各位數(shù)字的立方和等于該數(shù)

#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=數(shù)量 q:錢
    printf("公雞每只 5 元,母雞每只 3 元,小雞 3 只一元\n");
    printf("請輸入要買雞的數(shù)量:\n");
    scanf("%d", &cnt);// 100 100
    printf("請輸入要買雞的錢:\n");
    scanf("%d", &q);// 100 100
    /*1. 判斷輸入的數(shù)據(jù)是否合理*/
    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++) //總行數(shù)
    {
        /*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--) //循環(huán)的總次數(shù)
    {
        /*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;
}

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7604

    瀏覽量

    136680
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4779

    瀏覽量

    68519
收藏 人收藏

    評論

    相關(guān)推薦

    C語言中break語句的語法和基本應(yīng)用

    C語言中,break語句是一種控制流語句,它用于終止當(dāng)前所在的循環(huán)結(jié)構(gòu)(for、while、do-wh
    發(fā)表于 08-17 15:35 ?1710次閱讀

    C語言中if語句、if-else語句和switch語句詳解

    C語言中,有三種條件判斷結(jié)構(gòu):if語句、if-else語句和switch語句。
    發(fā)表于 08-18 16:36 ?1.2w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中if<b class='flag-5'>語句</b>、if-else<b class='flag-5'>語句</b>和switch<b class='flag-5'>語句</b>詳解

    C語言入門教程-if語句while循環(huán)

    if語句while循環(huán) C語言中,if語句while循環(huán)都會用到布爾表達(dá)式。下面是一個(gè)使用
    發(fā)表于 07-29 10:48 ?8547次閱讀

    C語言入門C語言語句的更換技巧

    C語言中有很多條語句, 在我們以后接觸到的程序中無非只有5條語句,而像do while和switch這樣的
    發(fā)表于 04-28 14:57 ?123次下載

    C++語言基礎(chǔ)講解視頻do while循環(huán)語句

    C++語言基礎(chǔ)講解視頻do while循環(huán)語句
    發(fā)表于 01-14 15:32 ?5次下載

    C++語言基礎(chǔ)講解視頻while循環(huán)語句

    C++語言基礎(chǔ)講解視頻while循環(huán)語句,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-14 15:31 ?3次下載

    Proteus之while語句的應(yīng)用

    Proteus之while語句的應(yīng)用,很好的Proteus資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-18 14:49 ?0次下載

    Proteus之while語句的應(yīng)用

    Proteus之while語句的應(yīng)用,很好的Proteus資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-18 14:49 ?0次下載

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

    C語言教程之使用while語句求n!,很好的C語言資料,快來學(xué)習(xí)吧。
    發(fā)表于 04-25 14:43 ?14次下載

    C語言的for循環(huán)語句的程序和電路圖免費(fèi)下載

    1、在許多實(shí)際問題中,需要程序進(jìn)行有規(guī)律的重復(fù)執(zhí)行,這時(shí)可以用循環(huán)語句來實(shí)現(xiàn)。在c語言中。用來實(shí)現(xiàn)循環(huán)的語句有for語句
    發(fā)表于 08-20 17:31 ?1次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的for循環(huán)<b class='flag-5'>語句</b>的程序和電路圖免費(fèi)下載

    C語言怎么跳出while函數(shù)

    C語言while函數(shù)是經(jīng)常用到的,這里說一下可以跳出while函數(shù)的幾種方法。
    的頭像 發(fā)表于 06-17 15:40 ?3.7w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>怎么跳出<b class='flag-5'>while</b>函數(shù)

    C語言總結(jié)_語句、運(yùn)算符

    當(dāng)前文章復(fù)盤C語言的: 位運(yùn)算運(yùn)算符、基本運(yùn)算符、數(shù)據(jù)類型、變量、for語句、while語句、goto
    的頭像 發(fā)表于 08-14 09:39 ?999次閱讀

    C語言for語句介紹

    除了可以用while語句和do...while語句實(shí)現(xiàn)循環(huán)外,C語言還提供for
    的頭像 發(fā)表于 03-09 11:14 ?1335次閱讀

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

    一、 在C語言中,while和if是兩個(gè)非常常用的控制語句。while用于創(chuàng)建循環(huán)結(jié)構(gòu),使得程序可以重復(fù)執(zhí)行一段代碼塊,而if則是用于條件判
    的頭像 發(fā)表于 11-22 10:09 ?4377次閱讀

    c語言while中嵌套if循環(huán)

    C語言是一種廣泛使用的面向過程編程語言,它提供了許多控制結(jié)構(gòu)來幫助程序員實(shí)現(xiàn)復(fù)雜的邏輯和流程控制。其中,while循環(huán)和if語句是非常常見和
    的頭像 發(fā)表于 11-22 10:09 ?6094次閱讀
    RM新时代网站-首页