流程控制while

2021-10-02 09:04:28 字數 4552 閱讀 7104

程式**執行的順序

(一)順序執行

(二)選擇執行

1.定義:

某些**可能執行,也可能不執行,有選擇的執行某些**

2.分類:

(1)if(比switch重要的多)

《1》if最簡單的用法

《2》if的範圍問題(重要)

《3》if……else……的用法

《4》if……else if……else……的用法

《5》c語言對真假的處理

《6》if舉例——求分數的等級

《7》if的常見問題解析——對任意三個數字進行排序

《8》if的常見問題解析——if空語句問題

《9》if的常見問題解析——if表示式成立時的輸出語句問題

(2)switch

(三)迴圈執行

1.定義:

某些**會被重複的執行

2.分類:

(1)for(重要)

《1》for迴圈最簡單的用法——1+2+3+……+100之和

《2》for迴圈最簡單的用法——求1~10內的奇數之和

《3》for和if的巢狀使用——求1~100內所有能被3整除的數字之和

《4》單獨使用for迴圈 or for和if的巢狀

《5》for的格式

《6》for執行的流程【重點】

《7》for範圍問題

《8》試數的詳細步驟

《9》浮點數的儲存所帶來的問題

(2)while

《1》while執行順序

● 格式:

while(表示式)

語句;● 功能:while和for一樣預設只能控制乙個語句

當表示式成立,執行語句,否則跳過while();執行下面的部分

《2》while與for的相互比較

for和while可以相互轉換

for(1;2;3)

a等價於

1;while(2)

for的邏輯性更強,不容易出錯,推薦使用for迴圈!

/*

功能:目的:while與for的相互比較——求1+2+3+……+100用for和

用while實現區別

*/# include

intmain

(void

)printf

("sum1 = %d\n"

, sum1)

;/*求1+2+3+……+100用while實現*/

int a =1;

int sum2 =0;

while

(a <=

100)

printf

("sum2 = %d\n"

, sum2)

;return0;

}/*在vs_2013中輸出結果是:

--------------------------------

sum1 = 5050

sum2 = 5050

--------------------------------

總結:*/

《3》while舉例——如何判斷乙個數字是回文數

從鍵盤輸入乙個數字,如果該數字是回文數,返回yes,否則返回no

回文數:正著寫和倒著寫一樣

eg:121 12321 我是你爹你是我;)

/*

功能:從鍵盤輸入乙個數字,如果該數字是回文數,返回yes,

否則返回no

目的:while舉例——如何判斷乙個數字是回文數

*/# include

intmain

(void)if

(sum == val)

printf

("yes\n");

else

printf

("no!\n");

return0;

}/*在vs_2013中輸出結果是:

--------------------------------

請輸入需要判斷的數字:12321

sum = 1

sum = 12

sum = 123

sum = 1232

sum = 12321

yes請輸入需要判斷的數字:1234

sum = 4

sum = 43

sum = 432

sum = 4321

no!--------------------------------

總結:*/

《4》for舉例——斐波拉契數列

1、2、3、5、8、13、21、34

第一、二項是沒有規律的,從第三項開始,每一項都死前兩項得的和

/*

功能:求斐波拉契數列第n項

目的:while舉例——斐波拉契數列

*/# include

intmain

(void

)elseif(

2== n)

else

}printf

("斐波拉契數列第n項為%d\n"

, f3)

;return0;

}/*在vs_2013中輸出結果是:

--------------------------------

請輸入需要求第n項的序列:6

斐波拉契數列第n項為13

--------------------------------

總結:試數:n = 6

①i = 3; i <= 6; f3 = f1 + f2 = 3; f1 = f2/f1 = 2; f2 = f3/f2 = 3; ++i; i = 4

②i = 4; i <= 6; f3 = f1 + f2 = 5; f1 = f2/f1 = 3; f2 = f3/f2 = 5; ++i; i = 5

③i = 5; i <= 6; f3 = f1 + f2 = 8; f1 = f2/f1 = 5; f2 = f3/f2 = 8; ++i; i = 6

④i = 6; i <= 6; f3 = f1 + f2 = 13; f1 = f2/f1 = 8; f2 = f3/f2 = 13; ++i; i = 7

⑤i = 7; i > 6

*/

《5》什麼時候使用while,什麼時候使用for

知道執行多少次用for,至少執行一次用do……while,不確定多少次用while

沒法說(3)do……while

● 功能:主要用於人機互動

● 格式:

dowhile(表示式);

先執行……,(表示式)判斷是否成立,成立時執行……

do……while和while / for不能相互轉換

……一定會執行一次,再判斷表示式是否成立

while和for之間可以相互轉換:

表示式為真,執行…… / 表示式為假,跳過執行下一步

……不一定會執行

while(表示式)

等價於for(1;2;3)

《1》do……while舉例——一元二次方程

printf()用%f輸出double型,而scanf卻用%lf呢?

/*

功能:目的:do……while舉例——一元二次方程

*/# include

# include

intmain

(void

)elseif(

0== delta)

else

printf

("您想繼續麼(y/n):");

/*%c前面必須加乙個空格 原因:

《c/c++ primer plus》*/

scanf_s

(" %c"

,&ch);}

while

('y'

== ch ||

'y'== ch)

;/*while後面有分號*/

return0;

}/*在vs_2013中輸出結果是:

--------------------------------

請輸入一元二次方程的三個係數:

a = 1

b = 5

c = 6

有兩個解,x1 = -2.000000,x2 = -3.000000

您想繼續麼(y/n):y

請輸入一元二次方程的三個係數:

a = 3

b = 4

c = 8

無實數解!

您想繼續麼(y/n):n

--------------------------------

總結:*/

break

continue

流程控制 while迴圈

while迴圈的結構 while條件 結果如果條件為真,則直接執行結果,然後再次判斷條件,知道條件為假,停止迴圈。結束迴圈的條件 1.改變條件 2.break 案例 1 猜大小的遊戲 n 66 理想數字為66 content int input 做個遊戲,請輸入我的理想數字是多少 while tru...

流程控制《3》while

include 1 while迴圈結構 while 條件 while迴圈執行的流程 首先判斷while右邊的 中的條件,由條件的真假來決定是否進入下面的 段 或者說是否執行下面的迴圈體 如果為真,執行 段 否則跳過直接執行while 之後的 2 do.while迴圈的結構 do while 條件 d...

SQL流程控制元素WHILE

while是sql server另乙個基本流程控制元素,用於迴圈執行 while後面的條件為true時,迴圈執行指定的sql語句或語句塊,如果while後的條件為false或unknown時,迴圈終止。演示,更詳細例子,請參閱 宣告乙個int型別變數,並賦值 declare firstcapital...