學習目標
1.【掌握】關係運算符和關係表達式dom
2.【掌握】邏輯運算符和邏輯表達式ide
3.【掌握】運算符的優先級和結合性函數
4.【掌握】if-else if-else結構的使用學習
5.【掌握】變量的做用域spa
6.【掌握】三目運算符和三目表達式code
7.【瞭解】如何生成一個隨機數orm
1、關係運算符和關係表達式
關係運算符:用來比較兩個表達式(數據)之間的大小關係,C語言中的關係運算符有 > 、>=、<、<=、=、!=來。blog
關係表達式:由關係運算符鏈接起來的式子,就叫作關係表達式,也能夠叫比較表達式。ci
1
2
3
|
int
num1
=
10
;
int
num2
=
20
;
num1
>
num2
;
//這就是關係表達式
|
關係表達式描述的是1個條件,而且這個條件只有兩種結果,一種是成立,另外一種是不成立。char類型的數據也能夠參與比較運算,比的是char數據對應的ASCII碼值大小。作用域
用int類型的變量來表示1個關係表達式的真假,0 表明假 ,1表明真
1
2
3
4
5
6
7
8
|
int
num1
=
10
;
int
num2
=
20
;
int
result
=
num1
>
num2
;
//result用於接收比較結果
int
result1
=
num1
<
num2
;
printf
(
"result = %d\n"
,
result
)
;
//輸出 result = 0
printf
(
"result1 = %d\n"
,
result1
)
;
//輸出 result = 1
|
2、邏輯運算符和邏輯表達式
邏輯運算符:用來判斷多個關係表達式之間的關係。C語言中經常使用的邏輯運算符有&&(邏輯與)、||(邏輯或)、!(邏輯非)。
邏輯表達式:由邏輯運算符鏈接起來的關係表達式式子,就叫作邏輯表達式。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
int
num1
=
10
,
num2
=
20
;
//存儲關係表達式的結果
int
result
=
num1
>
num2
;
int
result1
=
num1
<
num2
;
//輸出關係表達式的結果
printf
(
"result = %d\n"
,
result
)
;
//result = 0
printf
(
"result1 = %d\n"
,
result1
)
;
//result = 1
//對關係表達式的結果進行邏輯運算並存儲收邏輯表達式的結果
int
res
=
num
&&
num1
;
int
res1
=
num
||
num1
;
int
res2
=
!
res1
;
//輸出邏輯表達式的結果
printf
(
"res = %d\n"
,
res
)
;
// res = 0
printf
(
"res1 = %d\n"
,
res1
)
;
//res1 = 1
printf
(
"res2 = %d\n"
,
res2
)
;
//res2 = 0
|
&&運算:只有兩個表達式同時成立,結果才爲1,其餘都爲0
||運算:只有兩個表達式同時不成立,才爲0,其餘都爲1
!運算:表達式成立,結果爲0,表達式不成立結果爲1
邏輯運算短路問題:
&&是先計算左邊的條件,再計算右邊的條件。若是左邊表達式的結果是不成立, 就能夠直接肯定整個邏輯表達式爲不成立。右邊的條件表達式將不會再執行。
|| 是先計算左邊的條件,再計算右邊的條件。若是左邊的條件計算出來是成立,就能夠直接肯定整個邏輯表達式成立。右邊的條件表達式將不會再執行。
1
2
3
4
5
6
7
8
9
|
int
i
=
1
,
j
=
1
;
int
res
=
i
++
>
0
||
++
i
<
10
;
//i++ > 0已經爲真,就不會執行 ++i < 10這個表達式了
int
res1
=
j
++
<
0
&&
++
j
<
10
;
//j++ < 0已經爲假,就不會執行 ++j < 10這個表達式了
printf
(
"res = %d\n"
,
res
)
;
//res = 1
printf
(
"i = %d\n"
,
i
)
;
//i = 2
printf
(
"res1 = %d\n"
,
res1
)
;
//res1 = 0
printf
(
"j = %d\n"
,
j
)
;
//j = 2
|
3、運算符的優先級和結合性
運算符優先級:C語言的表達式能夠有不少種運算符來共同參與,當多種運算符參與表達式的時候,先算那1個,後算那1個呢?因此咱們就要考慮運算符之間的優先級了。C語言中的運算符分爲15個等級,1級的優先級最高,15級的優先級最低,運算符的優先級決定先進行那1個運算。
運算符的結合性:優先級決定了先算哪1個後算哪1個,可是當優先級相同的時候,是從左到右的計算,仍是從右到左的計算則是根據結合性來決定的。
4、if-else語句的使用
if結構
做用: 能夠將1段代碼在知足某個條件的時候執行,不然就不執行。
缺點: 只能在條件知足的時候執行代碼,條件不知足的時候無法搞。
需求: 但願在條件成立的時候執行1段代碼,條件不成立的時候執行另外的1短代碼。if結構也能夠實現,可是效率低下,要寫多個if結構語句,因此條件要判斷屢次。
1
2
3
4
5
6
7
8
9
|
int
money
=
599
;
if
(
money
>=
500
)
{
printf
(
"走,下課小明請吃飯!\n"
)
;
}
if
(
money
<
500
)
{
printf
(
"放學別走,天台決戰!\n"
)
;
}
|
if-else結構
做用:在條件成立的時候執行1段代碼,條件不成立的時候執行另外的1短代碼. 而且條件只判斷1次.
語法:
1
2
3
4
5
|
if
(條件表達式
)
{
執行代碼
1
;
}
else
{
執行代碼
2
;
}
|
if-else結構執行步驟
1.先計算if後條件表達式的結果。
2.若是結果爲真:就執行if塊中的代碼1,執行完畢以後,結束if-else結構往下執行。特別注意這個時候不會執行else中的代碼2。
3.若是結果爲假:就跳過if中的代碼1,執行else中的代碼2,執行完畢以後繼續往下執行。
if-else if-else結構:
做用: 能夠有序的判斷多個條件,當條件成立的時候執行對應的代碼。
語法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
if
(條件表達式
1
)
{
執行代碼
1
;
}
else
if
(條件表達式
2
)
{
執行代碼
2
;
}
else
if
(條件表達式
3
)
{
執行代碼
3
;
}
else
{
執行代碼
;
}
|
if-else if-else結構執行步驟
1.從上到下的挨個的去判斷每1個條件表達式,若是條件不成立,再判斷下1個條件。
2.只要有1個條件是成立的,就會執行其中的代碼,執行完畢以後就會當即結束整個結構。
3.若是全部的條件都不成立,那麼就執行else中的代碼。
5、變量的做用域
當CPU在執行程序的時候,若是執行完1對大括弧,會將聲明在這個大括弧之中的變量當即回收掉。因此,定義在1對大括弧之中的變量,只能在這個大括弧之中訪問。出了這個大括弧就沒法訪問了,由於出了這個大括弧之後 定義在大括弧之中的變量就被系統回收掉了。
在多個層級關係的大括弧中,內層大括弧能夠聲明1個和外層大括弧名字相同的變量。在內層大括弧中,從聲明同名變量的地方開始,訪問這個同名變量訪問的是內層變量。C語言根據變量做用域的不一樣,將變量分爲局部變量和全局變量。
局部變量:在函數內部定義的變量,稱爲局部變量。形式參數也屬於局部變量。局部變量只在定義它的函數內部有效,即局部變量只有在定義它的函數內部使用,其它函數不能使用它。
全局變量:在全部函數外部定義的變量,稱爲全局變量。全局變量的做用範圍是從定義變量的位置開始到源程序結束,即全局變量能夠被在其定義位置以後的其它函數所共享。
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
int
num
=
10
;
//全局變量
int
main
(
)
{
printf
(
"num = %d\n"
,
num
)
;
//num = 10
int
num
=
20
;
//局部變量
printf
(
"num = %d\n"
,
num
)
;
//num = 20
return
0
;
}
|
6、三目運算符和三目表達式
三目運算符有三個操做數參與運算,三目表達式就是有三個操做數參與運算的表達式。
語法:表達式1 ? 表達式2 : 表達式3;
執行流程:若是表達式1成立,則以表達式2的值做爲條件表達式的值,不然以表達式3的值做爲條件表達式的值。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include <stdio.h>
int
main
(
)
{
int
a
=
10
;
int
b
=
a
>
0
?
printf
(
"printf函數返回值爲int類型哦\n"
)
:
printf
(
"無論你信不信,反正我信了\n"
)
;
printf
(
"b = %d\n"
,
b
)
;
/*
printf函數返回值爲int類型哦
b = 37
*/
return
0
;
}
|
7、如何生成一個隨機數
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/*
先引入1個頭文件.叫作stdlib.h
調用個函數.
int num = arc4random_uniform(寫1個整型的數);
就會返回0到這個整型的數-1中的1個隨機的整數,而後賦值給num變量。
*/
#include <stdio.h>
#include <stdlib.h>
int
main
(
int
argc
,
const
char
*
argv
[
]
)
{
int
num
=
arc4random_uniform
(
6
)
+
5
;
//產生5-10的隨機數
printf
(
"num = %d\n"
,
num
)
;
return
0
;
}
|