學習目標
1.【掌握】do-while循環結構ide
2.【掌握】for循環結構學習
3.【掌握】嵌套循環spa
1、do-while循環結構
do-while語法:設計
1
2
3
4
5
6
7
|
int
main
(
)
{
do
{
循環體
;
}
while
(表達式
)
;
return
0
;
}
|
do-while執行順序:當遇到do-while循環結構時,首先執行一次循環體中的語句,接着判斷表達式成立與否,若是成立就執行循環體中的語句。而後再次判斷表達式,重複上述過程,直到表達式不成立則結束循環。code
特色:不管表達式成立與否,循環體中的語句至少會被執行一次。blog
與while相比:while是先判斷,再執行。do-while是先執行再判斷。例如:內存
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#include <stdio.h>
int
main
(
)
{
int
i
=
10
;
while
(
i
<
10
)
{
i
++
;
}
printf
(
"i = %d\n"
,
i
)
;
//打印i = 10
int
j
=
10
;
do
{
j
++
;
}
while
(
j
<
10
)
;
printf
(
"j = %d\n"
,
j
)
;
//打印j = 11
return
0
;
}
|
其餘和while同樣,沒啥好說的了。只有while掌握得好,do-while和for循環都同樣分分鐘掌握。ci
2、for循環結構
for循環結構只是爲while中最重要的三個要素設計了專門的位置,其做用效果都同樣。並且由while寫的循環,都能用for循環寫出來,那麼爲嘛還要學while呢,只學for循環不就好了麼。呵呵,這個看我的口味了,以爲使用哪一個循環結構方便就使用哪一個。rem
for循環語法:get
1
2
3
4
5
6
7
|
int
main
(
)
{
for
(表達式
1
;表達式
2
;表達式
3
)
{
循環體
;
}
return
0
;
}
|
for循環結構執行順序:
第一輪:先執行表達式1,再判斷表達式2若是成立,則執行循環體,再執行表達式3。不成立直接結束for循環。
第二輪:先判斷表達式2若是成立,則執行循環體,再執行表達式3。不成立直接結束for循環。
第三輪:重複第二輪操做。
分別利用for循環和while循環求1-100的累加和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
int
main
(
)
{
int
sum
=
0
;
for
(
int
i
=
1
;
i
<=
100
;
i
++
)
{
sum
+=
i
;
//求1-100的累加和
}
//用while循環
int
j
=
1
,
res
=
0
;
while
(
j
<=
100
)
{
res
+=
j
;
j
++
;
}
return
0
;
}
|
注意細節:
表達式可省略(三個表達式均可以省略)。for( ; ; ) 語句至關於while(1) 語句,即不設初值,不判斷條件(認爲表達式2爲真值),循環變量不增值。無終止地執行循環體,也就是死循環。
表達式1和表達式3能夠是一個簡單的表達式,也能夠是逗號表達式,即包含一個以上的簡單表達式,中間用逗號間隔。如:
1
2
3
4
5
6
7
8
9
10
11
|
int
main
(
)
{
for
(
int
sum
=
0
,
i
=
1
;
i
<=
100
;
i
++
)
sum
+=
i
;
//或
for
(
int
i
=
0
,
j
=
100
,
k
=
0
;
i
<=
j
;
i
++
,
j
--
)
{
k
=
i
+
j
;
}
return
0
;
}
|
表達式1和表達式3都是逗號表達式,各包含兩個賦值表達式,即同時設兩個初值,使兩個變量增值。
3、循環嵌套
咱們學習的三個循環結構是能夠互相嵌套使用的,while循環嵌套while循環,while循環嵌套do-while循環,while循環嵌套for循環等等,他們直接是能夠互相多層嵌套的。嵌套循環的執行順序和普通循環也是同樣的,只是循環體也是一個循環,咱們仍是把循環體中的循環結構當作普通的循環體去執行就好了。
1
2
3
4
5
6
7
8
9
10
11
12
|
#include <stdio.h>
int
main
(
)
{
for
(
int
i
=
1
;
i
<=
9
;
i
++
)
{
//外層循環
for
(
int
j
=
1
;
j
<=
i
;
j
++
)
{
//內存循環
printf
(
"%d * %d = %d\t"
,
j
,
i
,
i*
j
)
;
}
printf
(
"\n"
)
;
}
return
0
;
}
|
打印出:
執行順序:
把內層循環看做外層循環的普通循環體,外層循環執行一次,內層循環要執行到內層循環條件不知足才結束內層循環。而後再繼續執行內層循環後面的循環體語句,好比這裏的printf("\n");。他和內層循環同樣,都是外層循環的循環體。只是內層循環也是一個循環,按照循環的正常執行順序來執行就行。