学习目标
1.【掌握】switch-case结构dom
2.【理解】case语句穿透ide
3.【理解】Xcode断点调试学习
4.【理解】while循环结构初体验spa
5.【掌握】while循环结构的应用调试
6.【理解】break和continuecode
1、switch-case结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
switch
(表达式
)
{
case常量表达式
1
:
语句
1
;
break
;
case常量表达式
2
:
语句
2
;
.
.
.
break
;
case常量表达式
n
:
语句
n
;
break
;
default
:
语句
n
+
1
;
break
;
}
|
计算表达式的值,并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,而后跳出switch语句,继续执行程序。若是逐个比较都没有相等的值,则执行default后的代码,而后跳出switch,继续执行程序。orm
和if-else的区别:blog
1.可以使用switch-case结构写的代码必定可使用if结构写出来,但可以使用if结构写出来的代码,不必定可使用switch-case结构。教程
2.switch-case结构 只能直接作等值判断,判断switch后的值是否和给定的case值相等。if结构,不只能够作等值判断 还能够作范围判断。ci
3.若是是作范围判断推荐使用if语句,若是是作等值判断则推荐使用switch语句。
switch语句注意事项:
1.表达式的类型(case语句后的值)必须是整型或能够转变为整型的值(byte、short、char和int类型)。
2.值一、值2...值n只能为常数或常量,不能为变量。
3.功能代码部分能够写任意多句。
4.break关键字的意思是中断,指结束switch语句,break语句为可选。
5.case语句能够有任意多句,能够不用加括号“{}”。
6.default语句能够写在switch语句中的任意位置,功能相似于if语句中的else。
执行流程:在执行的过程当中,若是遇到break语句,则跳出switch语句。若是没有遇到break语句,则一直执行到switch语句的结束。
7.case后面不能够直接定义变量,使用定义的这个变量的做用域 8)若是在case后面定义的变量必须加上大括号
2、case语句穿透
case语句执行的过程当中,若是在每个case语句后没有break,则一旦进入某个分支后就会一直执行到switch结束。break的做用是直接跳出switch语句,固然还有其余做用,待会整理循环结构笔记的时候再说。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
int
year
=
0
,
month
=
0
;
printf
(
"请输入年份和月份:"
)
;
scanf
(
"%d%d"
,
&
year
,
&
month
)
;
switch
(
month
)
{
case
1
:
case
3
:
case
5
:
case
7
:
case
8
:
case
10
:
case
12
:
printf
(
"%d年的%d月有31天\n"
,
year
,
month
)
;
break
;
//这里就是使用了case穿透,1,3,5,7,8,10,12任意分支知足,都会执行他们后面全部代码,直到遇到break跳出switch
case
4
:
case
6
:
case
9
:
case
11
:
printf
(
"%d年的%d月有30天\n"
,
year
,
month
)
;
break
;
case
2
:
//判断年份是否为闰年.
if
(
year
%
400
==
0
||
(
year
%
4
==
0
&&
year
%
100
!=
0
)
)
{
printf
(
"%d年的%d月有29天\n"
,
year
,
month
)
;
}
else
{
printf
(
"%d年的%d月有28天\n"
,
year
,
month
)
;
}
break
;
default
:
printf
(
"你是都教授吗?\n"
)
;
break
;
}
|
穿透的做用:不一样case语句执行的代码相同,就可使用穿透来简写代码。
3、Xcode断点调试
在程序运行期间,咱们能够经过Xcode提供的断点调试监视CPU执行代码的步骤,变量的值的变化,以便咱们排查BUG。下面图例就是使用断点调试功能的图解,不是很详细,将就吧。。。整理笔记时间过短了,还得作练习,断点调试教程我会单独在【Xcode教程】栏目发布的。
Xcode如何显示行号:
在Xcode -》 Preferences -》 Text Editing -》 第一个选项,勾选Lines numbers。
添加断点:
设置断点不起做用:
删除断点:拖动断点到空白处,便可完全删除断点。
调试程序:Command + R 运行后,若是设置了断点,则直接进入调试视图
4、while循环结构初体验
循环结构能够将一段代码重复执行指定次数,C语言中的循环结构有while循环结构、do-while循环结构和for循环结构。固然由goto语句和if判断也能组成循环,不过全世界人民都不建议使用goto语句。今天咱们要讲解的是while循环结构的语法和应用场景。
1
2
3
|
while
(条件表达式
)
{
那段须要被反复不停执行的代码
,也叫循环体
;
}
|
执行过程:先判断while后面小括号里的表达式是否为真,为真则执行大括号里的循环体,而后再次判断while后面小括号里的表达式,为真再次继续执行,而后。。。直到while后面的表达式为假,则当即中止while循环。
关于死循环:
1
2
3
|
while
(
1
)
{
printf
(
"表达式一直为真。。。因此,死循环!"
)
;
}
|
循环体一直反复不停的执行,永远不会结束,这种循环咱们就叫作死循环。咱们在写循环的时候,要特别注意合理利用死循环。
5、while循环结构的运用
第一种场景:肯定循环体,也肯定循环的次数。
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h>
int
main
(
)
{
int
i
=
0
;
//将一句话输出2万次
while
(
i
<
20000
)
{
printf
(
"欢迎你来六阿哥的博客\n"
)
;
i
++
;
}
return
0
;
}
|
第二种场景:肯定循环体,不肯定循环次数,但肯定循环结束或者继续的条件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <stdio.h>
#include <stdlib.h>
int
main
(
int
argc
,
const
char
*
argv
[
]
)
{
int
money
=
arc4random_uniform
(
101
)
;
int
guess
=
-
1
;
while
(
guess
!=
money
)
{
printf
(
"请猜一下我给了你多少钱吧:"
)
;
scanf
(
"%d"
,
&
guess
)
;
if
(
guess
>
money
)
{
printf
(
"你猜得太大了\n"
)
;
}
else
if
(
guess
<
money
)
{
printf
(
"你猜得过小了\n"
)
;
}
}
printf
(
"恭喜你,正确\n"
)
;
return
0
;
}
|
第三种场景:遍历指定范围的数,将每1个数据都找出来
1
2
3
4
5
|
int
i
=
100
;
while
(
i
<=
150
)
{
printf
(
"%d\n"
,
i
)
;
i
++
;
}
|
第四种场景:找出指定范围中符合特定条件的数
1
2
3
4
5
6
7
8
9
10
11
12
|
int
i
=
100
;
while
(
i
<=
999
)
{
int
bai
=
i
/
100
;
int
shi
=
i
%
100
/
10
;
int
ge
=
i
%
10
;
//只取出知足条件的值
if
(
bai *
bai *
bai
+
shi *
shi *
shi
+
ge *
ge *
ge
==
i
)
{
printf
(
"%d\n"
,
i
)
;
}
i
++
;
}
|
第五种场景:求累加和与平均值
1
2
3
4
5
6
7
8
|
int
i
=
1
;
int
sum
=
0
;
while
(
i
<=
5
)
{
sum
+=
i
;
i
++
;
}
printf
(
"sum = %d\n"
,
sum
)
;
|
第六种场景:求最大值和最小值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <stdio.h>
#include <limits.h>
int
main
(
int
argc
,
const
char
*
argv
[
]
)
{
int
max
=
INT32_MIN
;
//先声明1个擂台变量.用来保存最大值的.
int
i
=
0
;
while
(
i
<
5
)
{
printf
(
"请输入第%d个数:\n"
,
i
+
1
)
;
int
num
=
0
;
scanf
(
"%d"
,
&
num
)
;
//每循环1次 就拿刀了用户输入的1个数据.
//若是输入的是第1个数据 那么就直接将这个数据赋值给max。
// if(i == 0)
// {
// max = num;
// }
//拿刀用户输入的这个数据 和擂台上的数据作比较.
if
(
num
>
max
)
{
max
=
num
;
}
i
++
;
}
printf
(
"max = %d\n"
,
max
)
;
return
0
;
}
|
6、break和continue
break关键字:
可使用在switch-case结构之中。若是在其中使用了break,就表明结束这个switch-case结构。
还可使用在循环体之中。若是在循环体之中遇到了break,就会当即结束当前循环结构。
1
2
3
4
5
6
7
8
|
int
i
=
0
;
while
(
i
<
5
)
{
printf
(
"我爱大家\n"
)
;
if
(
i
==
2
)
{
break
;
//i等于2的时候直接结束while循环,最终i的值也只停留在2
}
i
++
;
}
|
continue关键字:
只能用在循环体之中,若是在循环体之中遇到了continue,会当即结束本次循环。再判断循环条件,决定是否要继续下一次循环。
1
2
3
4
5
6
7
8
9
10
|
int
i
=
0
;
while
(
i
<
5
)
{
if
(
i
==
2
)
{
continue
;
//当i等于2的时候,直接结束本次循环
}
i
++
;
//由于i等于2就结束了本次循环,因此i++没有被执行。最终i的值为2
printf
(
"%d\n"
,
i
)
;
}
|