正文 第14章 選擇結構程序設計1(1 / 1)

所謂選擇結構,就是使程序在執行過程中根據判斷條件的結果不同,而執行不同操作的一種程序結構。它也是三種基本的程序結構之一。通過使用選擇結構,可以改變程序執行的順序,編寫出更具靈活性的C語言程序。

本章中我們首先學習實現選擇結構的一些基礎知識(關係運算符和邏輯運算符及其表達式),然後學習實現選擇結構的兩類控製語句(if語句和switch語句)。

要在不同操作間進行選擇,首先要對條件進行判斷。在程序設計中,這些判斷往往涉及數據的比較,如a是否大於b,或者i是否等於0等。關係運算用於實現兩個數據的比較,並得出結果,因此也稱為比較運算符。

在C語言中,共有6個關係運算符:>、>=、

=b+4。關係表達式的值隻有兩種可能,即真或假。若條件成立,結果為真,否則為假。在C語言中運算結果為真用1表示,為假用0表示。上麵三個例子中6〖〗大於〖〗6>=〖〗大於等於〖〗6b>c,要先計算a>b的值為1,再計算1>c,故其結果為0。

(3)關係運算符的優先級分為兩組,即>、>=、2相當於1!=(3>2)結果為0

(4)關係運算符的優先級低於算術運算符,高於賦值運算符,如a=7>2+5,相當於a=(7>(2+5)),結果為0。

(5)在C語言程序中,可以用關係運算符加以比較的數據類型有:整型、實型和字符型。比較字符型數據時,按其ASCII碼進行比較,如a>b的結果為假。

(6)不能用關係運算符比較兩個字符串常量的大小。字符串比較的方法將在後麵的章節中學習。

有時選擇一組操作執行的前提並不是簡單地滿足一個條件,而是要同時對多個條件進行判斷,並根據其結果的組合來進行選擇。如,同時滿足多個條件,才能執行一組操作,或是隻要滿足幾個條件中的一個就可以執行這組操作。這些條件的組合通過邏輯運算符來實現。C語言提供了三種邏輯運算符,即&&(與)、||(或)、!(非)。

說明:

(1)!是一個單目運算符,而&&和||都是雙目運算符,如!a、0||1。

(2)在C語言程序中,在判斷一個參與運算的量為真或為假時,以0為假,而所有非0的數都為真。

例如,由於1和5均為非0,因此1&&5的值為1,而5||0的值為1。

(3)這三個邏輯運算符的優先級不同,當多種運算符同時出現時,優先級順序從高到低為:

!(非)算術運算符→關係運算符→&&(與)→||(或)→賦值運算符

例如:ac&&x+yc)&&((x+y)=18)&&(age=18&&age=a&&ch=A&&chb&&b>c)

if(!n)

if(x=5)

if(i%5==0)

但這些表達式的值隻可能是真(非0)或假(0)。如上麵第三個例子,括號中賦值表達式x=5的值為非0,即真。

(2)若滿足表達式後要執行多條語句,必須將這組語句用花括號括起來。

例如:

if(a>b)

t=a;

a=b;

b=t;

[例52]輸入一個數,並求其絕對值。

voidmain()

intx;

printf("\npleaseinputanumber:");

scanf("%d",&x);

if(xmax)

max=b;

if(c>max)

max=c;

printf("max=%f",max);

運行結果:

pleaseinput3numbers:12,34,9

max=3400

程序說明:求三個數的最大值,可先假設第一個數為最大值,然後用剩下的數逐個與之比較,若比當前的最大值還要大,則用這個數替換最大值;否則,繼續比較下一個數。