C語言超細致講解循環(huán)語句
C語言循環(huán)家族
家族成員有while語句,for語句和do....while語句。這些成員都能實現(xiàn)循環(huán),但又各有特點。今天就由我?guī)ьI大家一起認識他們吧!
while循環(huán)
while語句的基本格式:
while(表達式)
{
循環(huán)語句;
}
while語句執(zhí)行的流程:

while語句的理解:
1當表達式為假時(0為假),不執(zhí)行while語句中的內容。
2當表達式為真的時候(非0),便循環(huán)執(zhí)行while循環(huán)語句的內容,直到表達式為假的時候便跳出循環(huán)。
3當while循環(huán)語句中出現(xiàn)break語句時,break語句的作用是結束所有循環(huán)。
4當while循環(huán)語句中出現(xiàn)continue語句時,continue語句的作用是結束本次循環(huán)。
代碼理解while:
我們要想在屏幕中打印1~10便可以借助循環(huán)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//打印1~10
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
}
return 0;
}
while循環(huán)中出現(xiàn)break:
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
}
return 0;
}
從這個代碼中我們可以看出,當程序進入到while循環(huán)中的時候,當i==5時便會進入到if語句中,這時后便會執(zhí)行break,從上面我們可以知道break作用是停止所有循環(huán)。那么屏幕中此時打印到1~4便會停止。
while循環(huán)中出現(xiàn)continue:
#include<stdio.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
i++;
}
return 0;
}
當我們分析這段代碼可以發(fā)現(xiàn),就是把break換成了continue,屏幕同樣打印了1~4,但不同的是第二個程序結束了,而第三個程序沒結束,進入了死循環(huán),為什么這樣會呢?我們知道continue的作用是結束本次循環(huán)(即continue后面的語句不在執(zhí)行),這時候i便會一直等于5進入到if中不斷的跳過后面的語句而進入的死循環(huán)中。
for循環(huán)
在C語言中我們既然有了while循環(huán)為什么還要來一個for循環(huán)呢?大家可以帶這個疑問繼續(xù)往下看。
for語句的基本格式:
for(表達式1; 表達式2; 表達式3)
{
循環(huán)語句;
}
表達式1: 為初始化部分,用于初始化循環(huán)變量的。
表達式2 :為條件判斷部分,用于判斷循環(huán)時候終止。
表達式3 :為調整部分,用于循環(huán)條件的調整。
for語句執(zhí)行的流程:

當程序來到for語句中的時,首先是來到表達式1初始化循環(huán)變量,在來到表達式式2進行初始循環(huán)變量判斷是否滿足循環(huán)條件,若不滿足則跳出循環(huán),滿足則執(zhí)行循環(huán)中的語句,執(zhí)行完后來到表達式3調整循環(huán)條件,在指向表達式2進行判斷,直到不滿足循環(huán)條件而跳出循環(huán)。
用for打印1~10:
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1;i <= 10;i++)
{
printf("%d ", i);
}
return 0;
}用下面代碼理解for循環(huán)中的break和continue
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1;i <= 10;i++)
{
if (i == 5)
{
break;
}
printf("%d ", i);
}
return 0;
}
#include<stdio.h>
int main()
{
int i = 1;
for (i = 1;i <= 10;i++)
{
if (i == 5)
{
continue;
}
printf("%d ", i);
}
return 0;
}
大家細細體會代碼1和代碼2,可以看出break和continue在循環(huán)中的作用都是一樣的,但是在不同的循環(huán)語句可能會出現(xiàn)不同的循環(huán)效果。
for語句的一些建議:
1 不可在for 循環(huán)體內修改循環(huán)變量,防止 for 循環(huán)失去控制
2 建議for語句的循環(huán)控制變量的取值采用“前閉后開區(qū)間”寫法
int i = 0;
//前閉后開的寫法 f
or(i=0; i<10; i++) {}
//兩邊都是閉區(qū)間
for(i=0; i<=9; i++) {}
這里是拓展部分大家可以細細體會。
for語句的變種:
#include <stdio.h>
int main()
{
//代碼1
for(;;)
{
printf("hehe\n");
}
//for循環(huán)中的初始化部分,判斷部分,調整部分是可以省略的,但是不建議初學時省略,容易導致問
題。
//代碼2
int i = 0;
int j = 0;
//這里打印多少個hehe?
for(i=0; i<10; i++)
{
for(j=0; j<10; j++)
{
printf("hehe\n");
}
}
//代碼3
int i = 0;
int j = 0;
//如果省略掉初始化部分,這里打印多少個hehe?
for(; i<10; i++)
{
for(; j<10; j++)
{
printf("hehe\n");
}
}
//代碼4-使用多余一個變量控制循環(huán)
int x, y;
for (x = 0, y = 0; x<2 && y<5; ++x, y++)
{
printf("hehe\n");
}
return 0;
}代碼1:死循環(huán)打印hehe
代碼2:打印100個hehe
代碼3:打印10個hehe
代碼4:打印2個hehe
看到這里大家知道為什么要出現(xiàn)for語句了嗎?
我相信大家一定發(fā)現(xiàn)了while循環(huán)中依然存在循環(huán)的三個必須條件,但是由于風格的問題使得三個部分很可能偏離較 遠,這樣 查找修改就不夠集中和方便。所以,for循環(huán)的風格更勝一籌;for循環(huán)使用的頻率也最高。
dowhile循環(huán)
在這里我就開門見山的和大家說do.....while循環(huán)的特點:循環(huán)至少執(zhí)行一次,使用的場景有限,所以不是經(jīng)常使用。
do語句的語法:
do
{
循環(huán)語句;
}while(表達式);
do語句的執(zhí)行流程:

從執(zhí)行圖中,程序到這里最少執(zhí)行一次循環(huán)中的語句,這里需要注意的是先執(zhí)行語句在進行判斷循環(huán)條件
在do語句中的break和continue:
#include<stdio.h>
int main()
{
int i = 1;
do
{
if (i == 5)
{
break;
}
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
#include<stdio.h>
int main()
{
int i = 1;
do
{
i++;
if (i == 5)
{
continue;
}
printf("%d ", i);
} while (i <= 10);
return 0;
}
大家只要記住break是中止循環(huán),而continue是跳過本次循環(huán)后面的語句。
到此這篇關于C語言超細致講解循環(huán)語句的文章就介紹到這了,更多相關C語言循環(huán)語句內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
C語言查找數(shù)組里數(shù)字重復次數(shù)的方法
這篇文章主要介紹了C語言查找數(shù)組里數(shù)字重復次數(shù)的方法,涉及C語言針對數(shù)組的遍歷與判斷技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07
C語言實現(xiàn)3個數(shù)從小到大排序/輸出的方法示例
這篇文章主要給大家介紹了關于如何利用C語言實現(xiàn)3個數(shù)從小到大排序/輸出的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用C語言具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-05-05
OpenCV cv.Mat與.txt文件數(shù)據(jù)的讀寫操作
這篇文章主要介紹了OpenCV cv.Mat 與 .txt 文件數(shù)據(jù)的讀寫操作,現(xiàn)在分享給大家,也給大家做個參考2018-05-05
新舊MFC版本實現(xiàn)CEdit透明的2種方法的實例代碼
新舊MFC版本實現(xiàn)CEdit透明的2種方法的實例代碼,需要的朋友可以參考一下2013-03-03
C語言函數(shù)傳遞數(shù)組和傳遞地址的區(qū)別你知道嗎
這篇文章主要介紹了C語言中數(shù)組作為函數(shù)的參數(shù)以及返回值的使用簡單入門,這里以一維數(shù)組作為基本條件進行例子講解,需要的朋友可以參考下2021-09-09

