C#中while循環(huán)和do-while循環(huán)舉例詳解
一般情況下,知道循環(huán)幾次采用for循環(huán),如果不知道循環(huán)要執(zhí)行幾次,那么 while 循環(huán)或 do-while 循環(huán)就是比較好的處理方式。
一、while循環(huán)
while(條件表達(dá)式)
{
條件表達(dá)式成立(true)時(shí)要執(zhí)行的語(yǔ)句;
}
進(jìn)入 while 循環(huán)時(shí),必須先檢查條件表達(dá)式,如果符合,就會(huì)執(zhí)行循環(huán)體內(nèi)的語(yǔ)句:如果不符合,就會(huì)跳離循環(huán)。因此循環(huán)內(nèi)的某一段語(yǔ)句必須以改變條件表達(dá)式的值來(lái)結(jié)束循環(huán)的執(zhí)行,否則就會(huì)形成無(wú)限循環(huán)。
二、do-while循環(huán)
無(wú)論是 while 循環(huán)還是 do/while 循環(huán)都是用來(lái)處理未知循環(huán)執(zhí)行次數(shù)的程序。while 循環(huán)先進(jìn)行條件運(yùn)算,再進(jìn)入循環(huán)體執(zhí)行語(yǔ)句;do/while 循環(huán)恰好相反,先執(zhí)行循環(huán)體內(nèi)的語(yǔ)句,再進(jìn)行條件運(yùn)算。對(duì)于 do/while 循環(huán)來(lái)說(shuō),循環(huán)體內(nèi)的語(yǔ)句至少會(huì)被執(zhí)行一次;while 循環(huán)在條件運(yùn)算不符合的情況下不會(huì)進(jìn)入循環(huán)體來(lái)執(zhí)行語(yǔ)句。
do/while 循環(huán)語(yǔ)法如下:
do {
//程序語(yǔ)句;
}while(條件運(yùn)算);不要忘記條件運(yùn)算后要有“:”結(jié)束循環(huán)。那么什么情況下會(huì)使用 do/while 循環(huán)呢?通常是詢問(wèn)用戶是否要讓程序繼續(xù)執(zhí)行時(shí)。下面還是以“1+2+3+...+10”為例來(lái)認(rèn)識(shí)一下 do/while循環(huán),語(yǔ)句如下:
int counter=1,sum=0://counter是計(jì)數(shù)器
do {
sum += counter;//sum 存儲(chǔ)數(shù)值累加的結(jié)果
counter++;//控制運(yùn)算:讓計(jì)數(shù)器累加
}while(counter<= 10);//條件表達(dá)式表示會(huì)進(jìn)入循環(huán)體內(nèi),運(yùn)行程序語(yǔ)句后再進(jìn)行條件運(yùn)算,若條件為true 則繼續(xù)執(zhí)行,不斷重復(fù),直到 while 語(yǔ)句的條件運(yùn)算為 fàalse 才會(huì)離開(kāi)循環(huán)。它的流程控制圖如圖 4-25 所示。


語(yǔ)句解析:

代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//User defined
using static System.Console;//導(dǎo)入靜態(tài)類
namespace while_dowhile
{
class Program
{
static void Main(string[] args)
{
//while循環(huán)
int sum = 0;
int counter = 1;//計(jì)數(shù)器
while (counter <= 10)
{
sum += 1;
counter++;//將計(jì)數(shù)累加
}
Console.WriteLine("累加結(jié)果:{0}", sum);
//dowhile循環(huán)
int counter2 = 1,sum2 = 0;//counter是計(jì)數(shù)器
do {
sum2 += 1;//sum存儲(chǔ)數(shù)值累加的結(jié)果
counter2++;//控制運(yùn)算:讓計(jì)數(shù)器累加
} while (counter2 <= 10);//條件表達(dá)式
Console.WriteLine("累加結(jié)果:{0}", sum2);
//while循環(huán) + break中斷+continue
int sum3 = 0;
int num1 = 0;
int counter3 = 1;//計(jì)數(shù)器
while (counter3 <= 10)
{
sum3 += 1;
counter3++;//將計(jì)數(shù)累加
if (counter3 % 2 == 0)//找出奇數(shù)
{
num1 += 1;
WriteLine("執(zhí)行continue");
continue;//繼續(xù)循環(huán)
}
if (sum3>7)
{
WriteLine("sum3>7,中斷");
break;
}
}
Console.WriteLine("累加結(jié)果:{0}", sum3);
Console.WriteLine("執(zhí)行continue{0}", num1);
ReadKey();
}
}
}
三、中斷語(yǔ)句break和跳出本次執(zhí)行循環(huán)continue
一般來(lái)說(shuō),break 語(yǔ)句用來(lái)中斷循環(huán)的執(zhí)行,continue 語(yǔ)句用來(lái)暫停當(dāng)前執(zhí)行的語(yǔ)句,它會(huì)回到當(dāng)前語(yǔ)句的上一個(gè)區(qū)塊,讓程序繼續(xù)執(zhí)行下去。因此,可以在for、while、do...while循環(huán)中的程序語(yǔ)句中加入 break或 continue 語(yǔ)句,使用一個(gè)簡(jiǎn)單的范例來(lái)說(shuō)明這兩者之間的差異。
代碼:
//while循環(huán) + break中斷+continue
int sum3 = 0;
int num1 = 0;
int counter3 = 1;//計(jì)數(shù)器
while (counter3 <= 10)
{
sum3 += 1;
counter3++;//將計(jì)數(shù)累加
if (counter3 % 2 == 0)//找出奇數(shù)
{
num1 += 1;
WriteLine("執(zhí)行continue");
continue;//繼續(xù)循環(huán)
}
if (sum3>7)
{
WriteLine("sum3>7,中斷");
break;
}
}
Console.WriteLine("累加結(jié)果:{0}", sum3);
Console.WriteLine("執(zhí)行continue{0}", num1);
總結(jié)
到此這篇關(guān)于C#中while循環(huán)和do-while循環(huán)的文章就介紹到這了,更多相關(guān)C# while循環(huán)和do-while循環(huán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析C# web訪問(wèn)mysql數(shù)據(jù)庫(kù)-整理歸納總結(jié)
本篇文章是對(duì)C#中的web訪問(wèn)mysql數(shù)據(jù)庫(kù)的一些知識(shí)點(diǎn)進(jìn)行了整理歸納總結(jié),需要的朋友可以參考下2013-07-07
C#通過(guò)WIN32 API實(shí)現(xiàn)嵌入程序窗體
這篇文章主要介紹了C#通過(guò)WIN32 API實(shí)現(xiàn)嵌入程序窗體的方法,涉及WIN32 API的調(diào)用及窗體的設(shè)計(jì),具有很好的借鑒價(jià)值,需要的朋友可以參考下2014-09-09
C#實(shí)現(xiàn)在兩個(gè)數(shù)字之間生成隨機(jī)數(shù)的方法
這篇文章主要介紹了C#實(shí)現(xiàn)在兩個(gè)數(shù)字之間生成隨機(jī)數(shù)的方法,在一些特殊場(chǎng)景會(huì)用到哦,需要的朋友可以參考下2014-08-08
在Unity中實(shí)現(xiàn)簡(jiǎn)單的偽時(shí)間同步
這篇文章主要介紹了在Unity中實(shí)現(xiàn)簡(jiǎn)單的偽時(shí)間同步,為什么說(shuō)是偽同步呢,因?yàn)閮H僅是獲取的數(shù)據(jù)庫(kù)所在服務(wù)器的系統(tǒng)時(shí)間,分享給大家,有需要的小伙伴可以參考下2015-03-03

