第三天我們學習了C語言中的循環結構。
1.C語言中一共有三種基本結構:順序結構,分支結構,循環結構。
2.循環結構指在滿足特定條件下,反覆執行某程序段。
3.循環結構中,有while循環,do..while循環和for循環。
4.while循環的格式:
while (條件表達式) {
語句;
}
//如果條件表達式爲真時,執行循環體;否則,循環停止。
//注意:循環變量要保證可以執行到,否則進入死循環。
例題:用while打印出1~100之間7的倍數。
// 定義一個int類型的變量,並初始化循環變量
int i = 1;
// 開始循環,循環條件爲100內的整數
while (i <= 100) {
// 如果滿足條件,執行括號內的語句,如果不滿足,跳出循環
// 需要進行判斷,如果爲7的倍數纔打印
if(i % 7 == 0){
printf("%d\n", i);
}
// 需要注意,循環增量務必保證可以執行到,否則進入死循環
i++;
// 語句進行到這裏,下面應該執行的是返回到條件表達式而不是直接退出循環
}
5.隨機數的使用:arc4random()
測試隨機數,arc4random()返回一個unsigned int類型的隨機數
unsigned int r = arc4random();
// 無符號整型需要用%u作爲轉義字符
printf("%u\n", r);
如果想要指定範圍內的隨機數,則公式:arc4random() % (最大值 - 最小值 + 1) + 最小值;
例題1:打印10個隨機數。
// 循環變量習慣從0開始
int i = 0;
// 從0開始可以很直觀的看出循環次數,並且數組也是從0開始
while(i < 10){
//需要注意不要把arc4random()寫在循環外
int r = arc4random() % (35 - 15 + 1) + 15;
printf("%d ", r);
i++;
}
// 最後加個換行,讓控制檯更整齊
printf("\n");
例題2:打印n個10-30的隨機數,並輸出最大值。
printf("請輸入n的值:");
// 初始化循環變量以及循環次數,以及用來保存最大值的信息
int i = 0, n = 0, max = 0;
// 輸入n的值
scanf("%d", &n);
// 循環開始,循環次數爲n
while(i < n){
// 隨機生成10-30範圍的隨機數
int r = arc4random() % (70 - 30 + 1) + 30;
// 用新隨機出現的數值與當前最大值比較,如果最大值小於新值,則替換成最大值
max = max > r ? max : r;
// 需要注意,不要在循環內輸出最大值,要在計算之後一次打印(循環外)
printf("%d ", r);
// 循環變量不能忘記
i++;
}
// 注意美觀
printf("\n");
// 輸出最大值
printf("max = %d\n", max);
6.break在switch語句中的作用:跳出switch語句。
break在循環體中的作用:跳出本層循環(通常與if連用)。
continue的作用:結束本次循環,繼續下一次循環(通常與if連用)。
7.do..while循環的格式:
do{
語句;
}while(條件表達式);
//先執行循環體,再判斷循環條件,直到循環條件不滿足,循環結束。
//for語句執行次序:1.循環變量初始化 2.循環條件->(條件滿足才執行) 3.語句 4.循環增量->2.3.4->2.3.4->2(條件不滿足)->退出
//進入循環
for (int i =1; i <= 100; i++) {
// 判斷是否爲7的倍數
if (i % 7 == 0) {
// 輸出i的值
printf("%d\n", i);
}
// 千萬別寫循環增量
}
9.循環嵌套
例題:實現九九乘法表
//實現乘法⼝口訣表。
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
if (j <= i) {
printf("%d * %d = %2d ", i, j, i*j);
}
}
printf("\n");
}