1. 程式人生 > >c分支語句結構和邏輯語句結構

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跨切迴圈層的次數