正確理解if語句

[接招看題027] 輸入任意三個整數num1、num2、num3,求三個數中的最大值。
/功能:說明if 語句的格式。/

在這裏插入圖片描述
[幫你節約時間的源代碼:
#include <stdio.h>
main()
{int num1,num2,num3,max;
printf(“please input three numbers:”);
scanf("%d %d %d",&num1,&num2,&num3);
if(num1>num2)
max=num1;
else
max=num2;
if(num3>num2)
max=num3;
printf(“The three numbers are:%d,%d,%d\t”,num1,num2,num3);
printf(“max=%d\n”,max);
}
升級,優化算法:
本案例中的第1個if語句,可優化爲如下不帶else子句的形式:
max=num1;
if(num2>max) max=num2;
這種優化形式的基本思想是:首先取一個數預置爲max(最大值),然後再用max依次與其餘的數逐個比較,如果發現有比max大的,就用它給max重新賦值,比較完所有的數後,max中的數就是最大值。這種方法,對從3個或3個以上的數中找最大值的處理,非常有效。請讀者仔細體會。代碼演示,沒有比較,哪來傷害?

在這裏插入圖片描述
比較開篇的代碼,碼量少了一行,節約了內存空間,減輕了CPU的處理兩。
幫你節約時間的源代碼:
#include <stdio.h>
main()
{int num1,num2,num3,max;
printf(“please input three numbers:”);
/調試器原因,這裏scanf %d與%d間用空格隔開,否則會報錯,讀者可以試一試/
scanf("%d %d %d",&num1,&num2,&num3);
max=num1;
if(num2>max)
max=num2;
if(num3>max)
max=num3;
printf(“The three numbers are:%d,%d,%d\t”,num1,num2,num3);
printf(“max=%d\n”,max);
}
1.if語句的一般格式
if(表達式)
{語句組1;}
else
{語句組2;} ]
(1)if語句中的"表達式"必須用"(“和”)“括起來。
(2)else子句(可選)是if語句的一部分,必須與if配對使用,不能單獨使用。
(3)當if和else下面的語句組,僅由一條語句構成時,也可不使用複合語句形式(即去掉花括號)。
2.if語句的執行過程
(1)缺省else子句時 當"表達式"的值不等於0(即判定爲"邏輯真”)時,則執行語句組A,否則直接轉向執行下一條。
在這裏插入圖片描述
在這裏插入圖片描述
(2)指定else子句時當"表達式"的值不等於0(即判定爲"邏輯真")時,則執行語句組A,然後轉向下一條語句;否則,執行語句組B。
在這裏插入圖片描述
如圖所示。

在這裏插入圖片描述

3.if語句的嵌套與嵌套匹配原則 if語句允許嵌套。所謂if語句的嵌套是指,在"語句組1"或(和)"語句組2"中,又包含有if語句的情況。 if語句嵌套時,else子句與if的匹配原則:與在它上面、距它最近且尚未匹配的if配對。
爲明確匹配關係,避免匹配錯誤,強烈建議:將內嵌的if語句,一律用花括號括起來,形成一個複合語句。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章