C++筆記--控制語(yǔ)句
控制語(yǔ)句:程序默認(rèn)是順序執(zhí)行,但在實(shí)際項(xiàng)目中需要選擇、循環(huán)。
1 選擇控制語(yǔ)句if
1.1 if語(yǔ)句的形式
1 if(條件表達(dá)式)2 {//復(fù)合語(yǔ)句,若干條語(yǔ)句的集合3 ?語(yǔ)句一;4 ?語(yǔ)句二;5 }
注意:如果條件成立執(zhí)行大括號(hào)里的所有語(yǔ)句,不成立的話大括號(hào)里的語(yǔ)句都不執(zhí)行。
if(條件表達(dá)式) ?//如果if沒(méi)有{} 只能作用一條語(yǔ)句(if只能識(shí)別語(yǔ)句一)
? ?語(yǔ)句一;
? ?語(yǔ)句二;
案例一:判斷data是否被3整除
int data =12;
if(data%3 == 0)
{
cout<<data<<"能被3整除"<<endl;
}
1.2 if else
案例二:對(duì)一個(gè)int數(shù)據(jù)取余數(shù)

int data =0;
cout<<"請(qǐng)輸入一個(gè)整數(shù)";
cin>>data;if(data%2 ==0)
{
? cout<<"余數(shù)為0";
} else{ ? ? ? ?
cout<<"余數(shù)為1";
}
}

注意:如果項(xiàng)目有兩種結(jié)果,且不會(huì)同時(shí)出現(xiàn),就選擇if...else...
1.3 if...else if...else語(yǔ)句

if(表達(dá)式1) { ? ? ?語(yǔ)句1; ? }else if(表達(dá)式2) { ?語(yǔ)句2; } ...else() { ?語(yǔ)句n; ? ? ? ? } ? ? ? ? ? ?

如果表達(dá)式1為真 執(zhí)行語(yǔ)句1,其他條件將不會(huì)再判斷。只有當(dāng)表達(dá)式1為假時(shí) 才會(huì)去判斷表達(dá)式2的真假。
如果表達(dá)式2為真執(zhí)行語(yǔ)句2,其他條件將不會(huì)再判斷。只有當(dāng)表達(dá)式2為假時(shí)才會(huì)去判斷表達(dá)式3的真假。(依此類推)只有所有表達(dá)式都為假時(shí),最后才會(huì)執(zhí)行else中的語(yǔ)句n。
注意:如果項(xiàng)目有多個(gè)結(jié)果,但是只會(huì)出現(xiàn)一個(gè),請(qǐng)選擇if...else if
案例一:輸入int數(shù)據(jù)求余數(shù):

int data =0; ? ?cout<<"請(qǐng)輸入一個(gè)整數(shù)"; ? ?cin>>data; ? ?if(data%3 ==0) ? ?{ ? ? ? ?cout<<"余數(shù)為0"; ? ?} ? ?else if(data%3==1) ? ?{ ? ? ? ?cout<<"余數(shù)為1"; ? ?} ? ?else ? ?{ ? ? ? ?cout<<"余數(shù)為2"; ? ?}

2 選擇控制語(yǔ)句 switch
switch(表達(dá)式) //表達(dá)式只能是字符型(char)或整形的(short int int long int) { case 常量表達(dá)式1: 語(yǔ)句1: break; case 常量表達(dá)式2: 語(yǔ)句2: break; default: 語(yǔ)句3; break; }
將表達(dá)式的結(jié)果與case后的常量表達(dá)式的值一 一對(duì)比,相等就從當(dāng)前case語(yǔ)句處進(jìn)入執(zhí)行,直到遇到break跳出switch語(yǔ)句。(表達(dá)式只能是字符型(char)或整形的(short int int long int))
案例二:鍵盤輸入1~7的數(shù)值判斷是星期幾

? int data =0; ? ?cout<<"請(qǐng)輸入一個(gè)0~7之內(nèi)的整數(shù):"; ? ?cin>>data; ? ?if(data>7||data<1) ? ?{ ? ? ? ?cout<<"輸入無(wú)效";// ? ? ?return; ? ?} ? ?switch(data) ? ?{ ? ?case(1): ? ? ? ?cout<<"周一"<<endl; ? ? ? ?break; ? ?case(2): ? ? ? ?cout<<"周二"<<endl; ? ? ? ?break; ? ?case(3): ? ? ? ?cout<<"周三"<<endl; ? ? ? ?break; ? ?case(4): ? ? ? ?cout<<"周四"<<endl; ? ? ? ?break; ? ?case(5): ? ? ? ?cout<<"周五"<<endl; ? ? ? ?break; ? ?case(6): ? ? ? ?cout<<"周六"<<endl; ? ? ? ?break; ? ?case(7): ? ? ? ?cout<<"周日"<<endl; ? ? ? ?break; ? ?}

if 和switch的區(qū)別:①if語(yǔ)句表達(dá)式?jīng)]有所謂的類型限定,switch限定字符型或者整型?
?②if語(yǔ)句能完成的事情包含switch語(yǔ)句做的事情? ③switch是對(duì)結(jié)果值的判斷,if是對(duì)表達(dá)式真假的判斷
3 循環(huán)控制語(yǔ)句 for
for(初始化語(yǔ)句;循環(huán)條件;步進(jìn)語(yǔ)句) { ?//復(fù)合語(yǔ)句 ?循環(huán)體; }
初始化語(yǔ)句:只會(huì)在進(jìn)入for循環(huán)前執(zhí)行一次初始化動(dòng)作
循環(huán)條件:每次循環(huán)都會(huì)執(zhí)行,只有當(dāng)循環(huán)條件為真時(shí)才會(huì)進(jìn)入循環(huán)體
步進(jìn)語(yǔ)句:每次循環(huán)體執(zhí)行完成后會(huì)自動(dòng)執(zhí)行步進(jìn)語(yǔ)句
案例三:for循環(huán)求0~100的和

//對(duì)0~100求和 ? ?int i =0; ? ?int sum = 0; ? ?for(i=0;i<=100;i++) ? ?{ ? ? ? ?sum+=i; ? ?} ? ?cout<<"和="<<sum<<endl;

for循環(huán)中,break:跳出所在的循環(huán),continue:后邊的語(yǔ)句將不會(huì)執(zhí)行,進(jìn)入下一次循環(huán)。
循環(huán)嵌套循環(huán)

for(i=0;i<10;i++) { ?for(j=0;j<10;j++) ?{ ? ?語(yǔ)句一; ?} }

先寫內(nèi)層循環(huán) 然后再寫外層循環(huán)
案例四:輸出九九乘法表

int i=0; ? ?int j=0; ? ?//輸出九九乘法表 ? ?for(i=1;i<=9;i++) ? ?{cout<<endl; ? ?for(j=1;j<=i;j++) ? ?{ ? ? ? ?cout<<j<<" × "<<i<<" = "<<i*j<<" ?"; ? ?} ? ?}


?
?
4 循環(huán)控制語(yǔ)句while
//1、外部實(shí)現(xiàn)初始化 2、內(nèi)部實(shí)現(xiàn)步進(jìn)語(yǔ)句while(循環(huán)條件)
{
循環(huán)語(yǔ)句;
}
案例五:while實(shí)現(xiàn)1~100求和

//1到100求和
? ?int i = 1; ? ?int sum = 0; ? ?while(i<=100)
? ?{
? ? ? ?sum+=i;
? ? ? ?i++;
? ?}
? ?cout<<"sum= "<<sum<<endl;
}