c分支語句結構和邏輯語句結構
在c語言中0表示假,非0表示真。
if的書寫規範
1.bool值和零比較:bool型別是在C99標準中才引入的一個語法特點,用的很少,一般情況下用一個整形變數來充當一個bool變數的角色
2.整形和零比較:如果一個變數就是整形 直接用if(整形==0)方式來比較
3.指標和零比較:int *p = NULL; if(p==NULL)
4.浮點型和零比較:因為浮點型在記憶體中的儲存方式使得,有些浮點數在記憶體中無法精確的儲存,這樣就必定有精度的丟失。一
一旦丟失就可能計算不夠準確。無法使用==直接進行判斷兩個浮點型是否相當。
此時 我們需要設定一個能接受的精度,保證誤差在精度範圍內就可以了
4.1判斷一個浮點數是否等於0.0:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<Windows.h> #define EXP 0.0000000001 int main() { float f = 0.000001; if ((f>-EXP)&&(f<EXP)) { //此時就證明f使無限接近0的數字 } system("pause"); return 0; }
4.2判斷一個浮點數是否等於20.0:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<Windows.h>
#define EXP 0.0000000001
int main() {
float f = 0.000001;
if (((f-20.0)>-EXP)&&((f-20.0)<EXP))
{
//此時就證明f使無限接近20.0的數字
}
system("pause");
return 0;
}
switch語句:也是一種分支結構常用於多分支的情況
在switch中的break: 在switch語句中,我們沒辦法實現分支,搭配break才能實現真正的分支
break語句的實際效果就是把語句劃分為不同的部分
default子句:解除安裝任何一個case語句可以出現的位置,當switch表示式的值不匹配所有的case標籤的值時這個default後的語句就會執行。每個switch只能有一個default 但是它可以出現在語句列表的任何位置。
goto語句:用於一次跳出多重迴圈break語句一次只能跳出一層迴圈
for () {
for () {
for () {
if ()
goto error;
}
}
}
error:
//處理情況
while語句:
while語句中的break和continue
在迴圈中只要遇到break。就停止後期的所有迴圈,直接終止迴圈;用於永久終止迴圈
countinue用於終止本次迴圈直接開始下一次迴圈
for語句:
for語句中的break和continue和while中是一樣的
建議:1不可在for迴圈體內修改迴圈變數,防止for迴圈失去控制
2建議for語句的迴圈控制變數的取值採用“半開半閉區間的寫法”
迴圈語句的效率:
在多重迴圈中,如果有可能應當最長的迴圈放在最內層,最短的迴圈放在最外層
以減少CPU跨切迴圈層的次數