三、循环与判断
? ? @if語句:根據比較的結果,決定做、還是不做某些動作,就要用到if語句。一個基本的if語句由一個關鍵字if開頭,跟上在括號里的一個表示條件的邏輯表達式,然后是一對大括號“{}”之間的若干條語句。如果表示條件的邏輯表達式的結果為true,那么就執行后面跟著的這對大括號中的語句,否則就跳過這些語句不執行,而繼續執行下面的其他語句。
? ? @計算機的判斷:計算機的智能是建筑在規則的基礎上的,在遇到情況的時候,根據事先制定的規則做出判斷,是計算機最基本的能力。能做判斷的基礎,是能對數據做比較,比較就是關于兩個數據是否相等、誰大誰小的結論,這需要用到關系運算:對兩個數據之間的關系的運算。
? ? C語言提供了六個關系運算符:
? ? ? ? ·?== 相等
? ? ? ? · != 不相等
? ? ? ? · > 大于
? ? ? ? · >= 大于或等于
? ? ? ? · < 小于
? ? ? ? · <= 小于或等于
? ? 注意其中含有兩個字符的運算符:==、!=、>=、<=中的兩個字符必須緊緊連在一起,中間不能插入空格。關系運算的結果是一個邏輯值,邏輯值只有兩種個能的值:true或1(真,表示成立)或flase或0(假,表示不成立)。當兩個值的關系符合關系運算符的預期時,
關系運算的結果為true,否則為flase。
? ? @關系運算符的優先級:所有關系運算符的優先級都比算術運算的優先級低,但是比賦值運算的優先級高。判斷是否相等的運算符==和!=的優先級比其他的關系運算符都低。
而連續的關系運算是從左到右進行的。
? ? @找零計算器:它需要用戶做兩個操作,其一輸入購買的金額,輸入支付的票面,而找零計算器則根據用戶的輸入做出相應的動作:計算并打印找零,或告知用戶當前余額不足以購買。
? ? ? ? 找零計算器代碼:
#include <stdio.h> int main() {// 初始化float price = 0;float bill = 0;// 讀入金額和票面printf("請輸入金額:");scanf("%f", &price);printf("\n");printf("請輸入票面:");scanf("%f", &bill);//計算找零printf("應該找您:%f\n", bill-price);return 0; }? ? @比較兩個數的大小
#include <stdio.h> int main() {int a, b, max;printf("Please input two numbers that are different: \n");scanf("%d %d", &a, &b);max=b; if(a>b)max=a;printf("The bigger one is %d.\n", max);return 0; }? ? @if語句可以判斷條件是否滿足,滿足時才做相應的動作,而循環語句可以在滿足條件時,不斷地重復執行一些動作。循環語句可以多次執行其他語句,它檢查一個邏輯條件是否滿足,只在循環滿足的時候執行它的循環體。
? ? @while語句是一個循環語句,他會首先判斷一個條件是否滿足,如果滿足條件,則執行后面緊跟著的語句或語句括號,然后再次判斷條件是否滿足,如果條件滿足則再次執行,直到條件不滿足為止。后面緊跟的語句或語句括號就是循環體。
? ? @do-while和while循環很像,唯一的區別是do-while循環在循環體執行結束的時候才會判斷條件。也就是說,循環體至少會執行一遍,然后再來判斷條件。與while相同的是,條件滿足時執行循環,條件不滿足時結束循環。
? ? @判斷一個數的位數 在C語言中long long型的輸入輸出格式是 %I64d 或 %lld。有時需要在特定的環境中,根據所給規則使用其中一種。
#include <stdio.h> int main() {long long num;int c=0;scanf("%lld", &num);while(num!=0){++c;num/=10;}printf("%d\n", c);return 0; }
?
? ? @如果我們把while翻譯作“當”,那么一個while循環的意思就是:當條件滿足時,不斷地重復循環體內的語句。
? ? @循環執行之前,判斷是否繼續循環,所以有可能循環一次也沒有被執行。
? ? @條件成立是循環繼續的條件。
? ? @do-while循環,在進入循環的時候不做檢查,而是在執行完一輪循環體的代碼之后,在來檢查循環體的條件是否滿足,如果滿足則繼續下一輪循環,不滿足則結束循環。do-while語句最后while();一定要有分號!
? ? @for循環,像一個計數循環:設定一個計數器,初始化它,然后在計數器到達某值之前,重復執行循環體,而沒執行一輪循環,計數器值以一定步進進行調整。例如:
#include <stdio.h> int main() {int n=100;int i;for(i=1; i<=n; i*=2)printf("i=%d\n",i);return 0; }
? ? @在做求和程序時,記錄結果的變量應該初始化為0,而做求積的程序時,記錄結果的變量應該初始化為1。
? ? @將for循環的控制變量聲明放在條件判斷的圓括號里,只有在C99標準里才能行。否則編譯出錯!下面的例子為非C99環境,例如:
int i; for(i=1; i<=n; i*=2) //這種是對的for(int i=1; i<=n; i*=2) //這種是不對的
? ? @for循環的條件判斷里的三個語句可以沒有其中任意一個!例如:
#include <stdio.h> int main() {int n;scanf("%d",&n);int i=n;int fact=1;for(; n>1; --n)fact*=n;printf("%d!=%d.\n",i, fact);return 0; }
? ? @for循環的格式:for(初始動作;條件;每輪的動作){}。for(;條件;)==while(條件)。
轉載于:https://www.cnblogs.com/ozxics/p/10646515.html
總結
- 上一篇: JS实现时间换算
- 下一篇: 2021年R1快开门式压力容器操作最新解