網(wǎng)站跳出率一般多少公司網(wǎng)站設(shè)計(jì)公司
控制語(yǔ)句與案例
1. 選擇結(jié)構(gòu)
1.1 if 語(yǔ)句
if
語(yǔ)句用于根據(jù)條件執(zhí)行不同的代碼塊。最基本的語(yǔ)法形式如下:
// 單分支
if (條件) {// 條件為真時(shí)執(zhí)行的代碼
}// 雙分支
if (條件) {// 條件為真時(shí)執(zhí)行的代碼
} else {// 條件為假時(shí)執(zhí)行的代碼
}// 多分支
if (條件1) {// 條件1為真時(shí)執(zhí)行的代碼
} else if (條件2) {// 條件2為真時(shí)執(zhí)行的代碼
} else {// 所有條件為假時(shí)執(zhí)行的代碼
}
1.2 switch 語(yǔ)句
switch
語(yǔ)句用于多分支選擇,適合針對(duì)某個(gè)變量的不同值進(jìn)行判斷:
switch (表達(dá)式) {case 常量1:語(yǔ)句1;break;case 常量2:語(yǔ)句2;break;default:默認(rèn)語(yǔ)句;
}
2. 循環(huán)結(jié)構(gòu)
2.1 while 循環(huán)
當(dāng)條件為真時(shí)重復(fù)執(zhí)行代碼塊:
while (條件) {// 循環(huán)體
}
2.2 do-while 循環(huán)
至少執(zhí)行一次循環(huán)體,然后再判斷條件:
do {// 循環(huán)體
} while (條件);
2.3 for 循環(huán)
適用于明確循環(huán)次數(shù)的場(chǎng)合:
for (初始化; 條件; 更新) {// 循環(huán)體
}
3. 跳轉(zhuǎn)語(yǔ)句
3.1 break
用于跳出當(dāng)前循環(huán)或 switch 語(yǔ)句:
while (1) {if (條件)break; // 滿足條件時(shí)跳出循環(huán)
}
3.2 continue
跳過(guò)當(dāng)前循環(huán)的剩余語(yǔ)句,直接進(jìn)入下一次循環(huán):
for (int i = 0; i < 10; i++) {if (i == 5)continue; // 跳過(guò) i=5 時(shí)的循環(huán)體printf("%d ", i);
}
3.3 goto
實(shí)現(xiàn)程序的無(wú)條件跳轉(zhuǎn):
goto 標(biāo)號(hào);
...
標(biāo)號(hào): 語(yǔ)句;
4. 注意事項(xiàng)
if
語(yǔ)句的條件表達(dá)式結(jié)果為 0 時(shí)判定為假,非 0 時(shí)判定為真switch
語(yǔ)句中必須使用break
避免執(zhí)行后續(xù) case- 循環(huán)體內(nèi)要有改變循環(huán)條件的語(yǔ)句,防止死循環(huán)
- 應(yīng)謹(jǐn)慎使用
goto
語(yǔ)句,它可能導(dǎo)致程序結(jié)構(gòu)混亂
5. 案例
5.1 猜拳游戲
編寫(xiě)一個(gè)猜拳游戲程序,要求如下:
- 玩家可以輸入 0(石頭)、1(剪刀)、2(布) 來(lái)進(jìn)行選擇
- 電腦隨機(jī)生成 0-2 的數(shù)字作為選擇
- 顯示雙方的選擇內(nèi)容
- 判斷勝負(fù)并輸出結(jié)果
- 按回車(chē)鍵繼續(xù)新一輪游戲
- 輸入無(wú)效數(shù)字時(shí)結(jié)束游戲
5.2 空心矩形
編寫(xiě)一個(gè)程序,根據(jù)用戶輸入打印空心矩形:
- 提示用戶輸入兩個(gè)整數(shù) m 和 n,分別表示行數(shù)和列數(shù)
- 打印一個(gè) m×n 的空心矩形
- 矩形邊框用 * 表示,內(nèi)部用空格表示
5.3 九九乘法表
編寫(xiě)一個(gè)程序,打印九九乘法表:
- 按照標(biāo)準(zhǔn)格式打印九九乘法表
- 每個(gè)算式使用格式:j x i = 結(jié)果
- 算式之間用 | 分隔
- 每行顯示到對(duì)角線位置
5.4 倒序九九乘法表
編寫(xiě)一個(gè)程序,倒序打印九九乘法表:
- 從9開(kāi)始倒序打印九九乘法表
- 每個(gè)算式使用格式:i x j = 結(jié)果
- 算式之間用 | 分隔
- 每行顯示到對(duì)角線位置
5.5 五子棋棋盤(pán)
編寫(xiě)一個(gè)程序,打印五子棋棋盤(pán):
- 棋盤(pán)大小為15×15
- 顯示行號(hào)(1-15)和列號(hào)(1-15)
- 行號(hào)占2位,右對(duì)齊
- 列號(hào)占4位,左對(duì)齊
- 使用 + 和 - 表示棋盤(pán)交叉線
- 使用 | 表示棋盤(pán)豎線
5.6 案例源碼
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 15void guessWinner();
void printRectangle();
void printMultiplicationTable();
void printReverseMultiplicationTable();
void printBoard();int main(int argc, char *argv[])
{ int choice;srand(time(NULL)); while(1)
{printf("請(qǐng)選擇功能:\n");printf("1 - 猜拳游戲\n");printf("2 - 打印空心矩形\n");printf("3 - 打印九九乘法表\n");printf("4 - 倒序打印九九乘法表\n");printf("5 - 按行倒序打印九九乘法表\n");printf("0 - 退出\n");printf("請(qǐng)輸入你的選擇: ");scanf("%d", &choice);if(choice == 0){printf("感謝您的使用,再見(jiàn)!");break;}switch(choice){case 1:guessWinner();break;case 2:printRectangle();break;case 3:printMultiplicationTable();break;case 4:printReverseMultiplicationTable();break;case 5:printBoard();break;default :printf("輸入無(wú)效!請(qǐng)重新輸入!\n");}
} return 0;
}void guessWinner()
{int player;int computer;while(1){printf("游戲:猜拳\n");printf("0 - 石頭\n1 - 剪刀\n2 - 布\n");printf("請(qǐng)輸入你的選擇: \n");scanf("%d", &player);if (player < 0 || player > 2) {printf("無(wú)效的選擇!\n");return;} computer = rand() % 3;printf("你選了: \n");if(player == 0) printf("石頭\n");if(player == 1) printf("剪刀\n");if(player == 2) printf("布\n");printf("計(jì)算機(jī)選了: \n");if(computer == 0) printf("石頭\n");if(computer == 1) printf("剪刀\n");if(computer == 2) printf("布\n");if(player == computer){printf("平局!\n");}else if((player == 0 && computer == 1) || (player == 1 && computer == 2) || (player == 2 && computer == 0)){printf("恭喜!你贏了!\n");}else{printf("對(duì)不起!你輸了!\n");}printf("\n按 Enter 鍵繼續(xù)...");getchar(); getchar();system("cls");} }void printRectangle()
{int m,n;int i,j;printf("請(qǐng)輸入兩個(gè)整數(shù):\n");scanf("%d%d",&m,&n);for(i = 0; i < m; i++){for(j = 0; j < n; j++){if(i == 0 || i == m - 1 || j == 0 || j == n -1){printf("*");}else{printf(" ");}}printf("\n");}
}void printMultiplicationTable()
{int i;int j;for(i = 1; i < 10; i++){for(j = 1; j <= i; j++){printf("%d x %d = %-2d |",j,i, i * j);}printf("\n");}printf("\n\n");
}void printReverseMultiplicationTable()
{int i;int j;for(i = 9; i >0; i--){for(j = i;j >= 1; j--){printf("%d x %d = %-2d |",i ,j, i * j);}printf("\n");}
}void printBoard() {int i, j;// 打印列號(hào)printf(" "); // 為行號(hào)預(yù)留空間for(i = 1; i <= SIZE; i++) {printf("%-4d", i); // 固定使用4個(gè)字符的寬度,左對(duì)齊}printf("\n");// 打印行號(hào)和棋盤(pán)內(nèi)容for(i = 1; i <=SIZE; i++) {printf("%-2d ", i);for(j = 1; j < SIZE; j++) {printf("+---");}printf("+\n");if(i < SIZE) {printf(" ");for(j = 1; j < SIZE; j++) {printf("| ");}printf("|\n");}}
}// 打印行號(hào)和棋盤(pán)內(nèi)容for(i = 1; i <=SIZE; i++) {printf("%-2d ", i);for(j = 1; j < SIZE; j++) {printf("+---");}printf("+\n");if(i < SIZE) {printf(" ");for(j = 1; j < SIZE; j++) {printf("| ");}printf("|\n");}}
}