学习目标
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
;
}
|