最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言控制語句之 循環(huán)

 更新時間:2021年07月07日 10:19:10   作者:森森子_  
C語言循環(huán)控制語句是一個基于C語言的編程語句,該語句主要有while循環(huán)語句、do-while循環(huán)語句和for循環(huán)語句來實現(xiàn)循環(huán)結構,今天通過本文給大家分享C控制語句的相關知識,需要的朋友參考下吧

入口條件循環(huán):while循環(huán)

在執(zhí)行多次循環(huán)之前之就已經(jīng)決定是否執(zhí)行循環(huán)
代碼格式:

while(關系表達式)
	語句                  //可以是以分號結尾的簡單語句,也可以是用花括號括起來的復合語句。

關系表達式的結果有真(非0)執(zhí)行假(0)不執(zhí)行兩種狀態(tài)

在這里插入圖片描述

所以,我們發(fā)現(xiàn)while循環(huán)的終止條件很重要,要實現(xiàn)終止就必須讓測試表達式的值產(chǎn)生變化,直到為假。while循環(huán)才可終止,否則,沒有人為干預,它就不會停止(后面會學到使用if和break語句來終止循環(huán),現(xiàn)在先不說

看下面代碼:

#include <stdio.h>
#include <windows.h>
int main(){
    int a=1;
    while (a<2)
    {
        printf("破軍:攻擊+200\t");
        Sleep(100);
    }
   return 0; 
}

這就是寫了一個不能終止循環(huán)條件的結果,還好我加了睡覺函數(shù)😥,就這我平時風扇不轉(zhuǎn)的電腦轉(zhuǎn)了起來謹慎謹慎?。?!

在這里插入圖片描述
在這里插入圖片描述


何時循環(huán)終止呢? 要明確一點,只有在測試條件為假時,也就是需要讓條件動起來(easy)比如循環(huán)體加一個a++,也可以在測試條件的地方加,等等……好,🆗


入口條件

#include<stdio.h>
int main(){
    int i=2;
    while (i++<1)
    {
        printf("執(zhí)行了");
    }    
}

上面代碼,我們一讀就會發(fā)現(xiàn)2本就不小于1,況且i++,所以說不滿足沒有進去的機會,這就是入口條件


#include <stdio.h>
int main(){
    int i=1;

    while (i++ < 7);
        printf("i的值=%d\n",i);

    return 0;
    
}

在這里插入圖片描述

這個代碼,while條件后面直接分號,其實就是空語句,它什么也不做,意思就是循環(huán)體是空語句,最后程序結束的條件i=8,理解理解。
只有在測試條件后面單獨語句(簡單語句或復合語句)才是循環(huán)部分


入口條件循環(huán):很牛的for循環(huán)


重點理解⭐⭐⭐

  • for把(初始化,測試和更新)組合在一起處理
  • for中的表達式也叫控制表達式,他們都是完整的表達式,所以副作用都發(fā)生在對下一個表達式求值之前。
  • 可以省略一個或多個表達式(分號不能省哦),只要在循環(huán)體中包含能結束循環(huán)的語句即可。
  • 第一個表達式不一定必須是給變量賦值,也可以使用printf();
語法格式
for(i=1;i<=100;i++){
	循環(huán)體
}
#include<stdio.h>
int main(){
    int i;
    for (;i < 2;)
    {
        printf("%d",i);
        i++;
    }
   return 0; 
}
#include<stdio.h>
int main(){
    int i;
    for ( printf("請輸入,輸入2我就結束了\n"); i != 2;)
    {
        scanf("%d",&i);
        printf("%d\n",i);
    }
   return 0; 
}

在這里插入圖片描述

for(初始化表達式;測試表達式;更新表達式){
		//復合語句
}

初始化表達式在執(zhí)行for之前只執(zhí)行一次,然后比較測試表達式得出結果是0不執(zhí)行1執(zhí)行,接著更新表達式的副作用發(fā)生,遍歷循環(huán)體,然后繼續(xù)重復檢查判斷的步驟,直至測試表達式結果為0,退出循環(huán)


在這里插入圖片描述


出口條件循環(huán):do while循環(huán)

while和for都是入口條件循環(huán),就是在循環(huán)之前檢查條件,所以會有一次也不執(zhí)行循環(huán)體的情況。因此,引入do while 先執(zhí)行循環(huán)體,然后再去判斷是否要進行下一次迭代,它能夠使得程序至少執(zhí)行一次。

代碼格式:

do
	語句;
while(條件);

注意:do while 循環(huán)以分號結尾,do while適用于那些特殊的至少要迭代一次的程序。


真值問題

什么是真?
在C中,表達式一定有一個值,關系表達式也不例外。那么我們通過代碼來讓計算機自己說說它認為的真假指的是什么。

#include<stdio.h>
int main(){
    int a,b;

    a=(1+1==2);
    b=(1+1==1);
    printf("true = %d; false = %d",a,b);

    return 0;
}

在這里插入圖片描述
原來如此!對C而言,表達式為真的值是1,表達式為假的值為0
由此,死循環(huán)就非常簡單了,比如信息轟炸就可以通過死循環(huán)結合windows庫來實現(xiàn)。是不是非常的easy呢。

while(1)
{
……
}

1被C視為真,其他值呢,繼續(xù)通過代碼來試試

#include<stdio.h>
int main(){
    int i=2;

    while (i)
    
        printf("%d is true\n",i--);
    printf("%d is false\n",i);

    i=-2;

    while (i)
    
        printf("%d is true\n",i++);
    printf("%d is false\n",i);
    
    
    return 0;
}

在這里插入圖片描述
我們發(fā)現(xiàn)在C中好像真假就是非00,

#include<stdio.h>
int main(){
    int a=3;
    while (a)
    {
        printf("again");
        scanf("%d",&a);
    }
    return 0;
}

在這里插入圖片描述
在這里插入圖片描述


關系運算符和表達式比較

while循環(huán)經(jīng)常依賴測試表達式作比較,這樣的表達式被稱為關系表達式,出現(xiàn)在關系表達式里的運算符叫做關系運算符。

下面復習下C語言的所有關系運算符

<		//小于
>		//大于
>=		//大于或等于
<=		//小于或等于
==		//等于
!=		//不等于

關系運算符構造關系表達式,通過關系表達式的真假決定一些操作


兩個庫函數(shù)fabs()和abs()

fabs()是需要包括math庫的,它是對浮點數(shù)取絕對值的函數(shù)
abs()是在stdio庫中的,它是對整數(shù)取絕對值的函數(shù)

舉個栗子:

#include<stdio.h>
#include<math.h>
int main(){
    double i = -3.12;
    int a=-3;
    printf("%f\n",fabs(i));
    printf("%d",abs(a));
    return 0;   
}

在這里插入圖片描述


布爾類型_Bool

兩種方法:
1.自己定義仿布爾型
2.C99為兼容C++,可以使用頭文件,通過bool來使用布爾類型

1

#define TRUE 1
#define FALSE 0
#include<stdio.h>
int main(){
    _Bool a=1;
    _Bool b=2;
    _Bool c=0;
    _Bool d=-1;

    printf("a==%d   \n",a);
    printf("b==%d   \n",b);
    printf("c==%d   \n",c);
    printf("d==%d   \n",d);

    printf("sizeof(_Bool)==%d  \n",sizeof(_Bool));

    return 0;

}

在這里插入圖片描述

2.

#include<stdio.h>
#include<stdbool.h>
int main(){
    bool a = true;
    bool b = false;
    printf("a==%d  b==%d\n",a,b);

    printf("sizeof(_Bool) == %d \n",sizeof(_Bool));

    return 0;
}

在這里插入圖片描述


優(yōu)先級

簡單概括:

括號 > 單目 > 算術 > 移位 > 關系 > 賦值
遇到就記住就🆗了


其他賦值運算符

用右側的值,根據(jù)指定的操作更新左側的變量

a+=b		//a=a+b
a-=b		//a=a-b
a*=b		//a=a*b
a/=b		//a=a/b
a%=b		//a=a%b

好處:1. 代碼緊湊 2.比較類似機器語言,這樣書寫代碼執(zhí)行效率高

逗號運算符

逗號運算符把兩個表達式連接成一個表達式,并保證最左邊的表達式最先求值
逗號運算符擴展了for循環(huán)的靈活性,以便在循環(huán)頭中包含更多的表達式
逗號運算符并不局限于for循環(huán)中使用,只是在循環(huán)中最常用
任何表達式的后面加上了分號就是表達式語句
逗號也可以做分隔符

應用:

#include<stdio.h>
int main(){
    int a,b;
    for(a=2,b=3;b<10;a+=1)
	    b+=a;
    printf("%d",b);
}


如何選擇循環(huán)

  • 首先,確定需要得是入口條件循環(huán)還是出口條件循環(huán)
  • 一般,當涉及初始化和更新變量時,用for循環(huán)比較好,而在其他情況下用while循環(huán)更好。
  • 還有,那個特殊的比如至少要循環(huán)迭代一次的選擇 do while

嵌套循環(huán)

指的是一個循環(huán)內(nèi)包含另一個循環(huán)。

嵌套循環(huán)常用于按行和按列顯示數(shù)據(jù),一個處理所有的列,一個處理所有的行。

內(nèi)層和外層循環(huán),簡單說,外層循環(huán)動一下,內(nèi)層循環(huán)遍歷所有,外層再動一次,內(nèi)層依舊遍歷所有,外層結束,內(nèi)層也就和結束。

通過簡單的99感冒靈(),哦,不對,99乘法表來練練理解理解

99乘法表分析

大概實現(xiàn)這樣
在這里插入圖片描述
分析:

  • 想想打印一個直角三角形出來
  • 我需要嵌套for,第一個for用來顯示行,一共有9行,第二個內(nèi)層for打印列,我們觀察99乘法表,第一行一列,對二行二列,以此類推……第九行九列,不難發(fā)現(xiàn)所以去哦只需要把它的判斷和行聯(lián)系起來,怎樣的聯(lián)系,只要小于等于行就🆗,
  • 然后我在打印每一列的時候加一個水平制表符(*4個空格的·長),最后內(nèi)層循環(huán)結束后在內(nèi)層循環(huán)外for循環(huán)內(nèi)加上一個換行符,顯示出9行。最后把打印的替換成運算就完事。實踐起來吧
#include<stdio.h>
int main(){
    for (int i = 1; i <= 9; i++){
        for(int j=1;j<=i;j++){
            printf("1\t");
        }
        printf("\n");
    }
    return 0;
}

替換

#include<stdio.h>
int main(){
    for (int i = 1; i <= 9; i++){
        for(int j=1;j<=i;j++){
            printf("%d*%d=%d\t",i,j,i*j);
        }
        printf("\n");
    }
    return 0;
}

基本OK,enn就用這個簡單栗子深刻領會,你會收益很大

在這里插入圖片描述

小結

循環(huán)是一個強大的編程工具,C中提供了,while , for , do while 三種循環(huán),學習完你將掌握C的全部循環(huán)體系,按入口出口可以分為兩類,入口:while , for 出口: do while,在創(chuàng)建循環(huán)時,我們要注意循環(huán)的測試條件得能使得循環(huán)結束循環(huán)測試中的值在使用前已經(jīng)經(jīng)過了初始化確保循環(huán)體每次都有迭代更新的值。清晰得認識三種循環(huán)得使用場景。此外,還有一些運算符,布爾值,優(yōu)先級,庫函數(shù)得零碎知識學習,它們也一樣重要


在這里插入圖片描述


想去新海誠的動漫里散個步,順便吃個天。

到此這篇關于C語言控制語句之 循環(huán)的文章就介紹到這了,更多相關C控制語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 仿現(xiàn)代C++智能指針實現(xiàn)引用計數(shù)

    仿現(xiàn)代C++智能指針實現(xiàn)引用計數(shù)

    這篇文章主要為大家詳細介紹了如何仿現(xiàn)代C++智能指針實現(xiàn)引用計數(shù),文中的示例代碼講解詳細,具有一定的借鑒價值,有需要的小伙伴可以了解下
    2024-03-03
  • C語言封裝函數(shù)字符串練習匯總分享

    C語言封裝函數(shù)字符串練習匯總分享

    這篇文章主要介紹了C語言封裝函數(shù)字符串練習匯總分享,分享內(nèi)容有字符串查找、字符串拼接、字符串轉(zhuǎn)整數(shù)等內(nèi)容,需要而小伙伴可以參考一下
    2022-03-03
  • Qt繪制簡單時鐘

    Qt繪制簡單時鐘

    這篇文章主要為大家詳細介紹了Qt繪制簡單時鐘效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • CFileDialog的鉤子函數(shù)解決對話框的多選之DoModal問題

    CFileDialog的鉤子函數(shù)解決對話框的多選之DoModal問題

    前幾天領導問我一個問題:就是使用CFileDialog類在設置多選時選中的文件所放的文件緩沖區(qū)不知設置多大合適,本文將詳細介紹,需要的朋友可以參考下
    2012-12-12
  • Qt實現(xiàn)拖動單個控件移動的示例代碼

    Qt實現(xiàn)拖動單個控件移動的示例代碼

    做慣了靜態(tài)圖,今天來搞一搞動態(tài)圖吧!本文將利用Qt實現(xiàn)拖動單個控件移動效果,文中的示例代碼講解詳細,感興趣的可以動手嘗試一下
    2022-06-06
  • 深度揭秘C++面向?qū)ο缶幊讨欣^承的核心概念

    深度揭秘C++面向?qū)ο缶幊讨欣^承的核心概念

    我們知道C語言是面向過程的編程語言,C++在C語言的基礎上進化出了面向?qū)ο蟮哪P?,而繼承就是面向?qū)ο蟮闹匾獙傩?,下面就讓小編來和大家詳細講講吧
    2023-07-07
  • C語言中如何通過指針參數(shù)返回值

    C語言中如何通過指針參數(shù)返回值

    這篇文章主要介紹了C語言中如何通過指針參數(shù)返回值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 利用Matlab繪制好看的弦圖

    利用Matlab繪制好看的弦圖

    弦圖在python中以及R中非常常見,但是MATLAB中卻始終沒有相關函數(shù)。本文就來用Matlab繪制一些好看的弦圖,感興趣的小伙伴可以了解一下
    2022-08-08
  • C語言數(shù)據(jù)結構與算法之鏈表(二)

    C語言數(shù)據(jù)結構與算法之鏈表(二)

    在這篇文章中,我們將拋開令人頭禿的指針和結構體,我們將另外使用一種數(shù)組來實現(xiàn)的方式,叫做模擬鏈表。讓來跟隨小編一起學習學習吧
    2021-12-12
  • opencv3.0識別并提取圖形中的矩形的方法

    opencv3.0識別并提取圖形中的矩形的方法

    這篇文章主要介紹了opencv3.0識別并提取圖形中的矩形的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07

最新評論

华亭县| 齐齐哈尔市| 滦平县| 湟中县| 黄陵县| 郧西县| 和政县| 额尔古纳市| 滦平县| 基隆市| 闽清县| 石林| 兴业县| 荆州市| 平邑县| 安泽县| 临清市| 南充市| 白沙| 义马市| 宁海县| 怀柔区| 临泽县| 凭祥市| 加查县| 文昌市| 吉安市| 平利县| 新丰县| 扬中市| 莱阳市| 翼城县| 法库县| 班戈县| 泰安市| 盐边县| 泸西县| 绥阳县| 阿荣旗| 江都市| 普宁市|