程式**執行的順序
(一)順序執行
(二)選擇執行
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...