(運算符、算數運算符、關系運算符、邏輯運算符、三目運算符、ASXLL碼)
概念:是編譯程序執行特定的算術或邏輯操作的符號;
分類:算術運算符、 關系運算符、邏輯運算符、按位運算符。
按照運算操作數分為:
運算遵循規則:數學的運算規則,先看優先級,再看結合律(從左到右【賦值運算為從右往左x=y=z】);
“ + ”加法運算符 “ - ”減法運算符 “ * ” 乘法運算符 “ / ”除法運算符 “ % ” 取余運算符.
概念:把“=”號右面的值賦值給左邊的變量;
注意:等號的左邊一定是變量;
復合賦值運算符:+=, -=, *=, /=, %=;
概念:讓連接的操作數自身的值+1或者-1
格式: 變量名++ ++ 變量名 變量名-- -- 變量名概念:計算常量、變量、數據類型在我們內存中占用的字節數;
用法: 注意事項:“ == ” “ > ” “ < ” “ >= ” “ <= ” “!=”
用法:對數據進行比較,看是否成立,條件成立=真(1),條件不成立=假(0).
int b=1!=2>3<4; 等效於:2>3為假=0. 0<4為真=1, 1!=1為假=0.所以最終結果=0;
“ ||”或 “ && ”與 “ ! ”非
用法:對於多個表達式進行並列真假判斷
注意:
<真假判斷表達式1>?<表達式2>:<表達式3>;
如: 1+2>4?2+2:3+4; 這個運算過程為:1+2=3, 3>4為假.則運行3+4這個表達式.所以最終結果為7.
概念:美國標准信息交換碼
字符運算會自動轉換成ASCLL表對應的值:
‘a’-‘b’ =( 97-98)
常用:
(順序結構、選擇結構--if/swich、循環結構--do...while/for)
是指編程中用來判定所給定的條件是否滿足,根據判定的結果(真或假)決定執行給出的兩種操作其中的一個
--當程序執行的過程中有多個選擇時使用
格式:
1.if(表達式){
語句塊;
}
2.if(表達式1){
語句塊1;
}else if(表達式2){
語句塊2;
}else{
語句塊3;
}
等等............
表達式求值:如果表達式的值為非0(真) 會執行語句塊 0 (假) 不會執行語句塊,;
注意:
--同if一樣也用於條件判斷,當表達式的結果有多種情況時用switch比較方便
格式:
switch(表達式){ --->表達式:返回值是整型
case 常量1: 語句1; --->常量必須是整型
break;
case 常量n; 語句n; --->語句中定義變量會造成作用於紊亂:(int a=10)錯!
break;
default: 語句n;
如果上面條件都不滿足執行default;
}
注意:
概念:
break和continue語句都可以用在循環中,用來跳出循環(結束循環);
break語句還可以用 在switch語句中,用來跳出switch語句。
注意:
// if(表達式)else{ ...... break;......}
1)break語句對if-else的條件語句不起作用;
2)在多層循環中,一個break語句只向外跳一層。
3)continue表示跳過本次循環,而不是跳出循環體;
概念:
是指編程循環語句,當滿足條件時進入循環,循環判斷,直到不滿足條件跳出循環,根據條件反復執行一段代碼的時候用
格式:
while (條件) { ---先判斷再執行:條件為真執行代碼塊,條件為假不執行;
語句塊;
}
注意:
int num = 3;
while (3 == num) {
printf("num = %d\n",num);
num++;
}
1、通常把常量寫在前面
2、while 後如果只有一條語句它可以省略大括號
3、while小闊號後面不可以直接寫分號(沒有意義)
4、作用域:內部代碼塊中定義的變量不可以在外邊代碼塊中訪問
5、作用域紊亂:while (1 < 3) int num = 5;
6、最簡單死循環(條件一直為真,循環無法結束):while (1);
格式:
do{
語句塊;
} while(條件);
特點:與while相比,先執行後判斷,至少會執行一次語句塊;
格式:
for(表達式1 ;表達式2 ;表達式3 ){ ---3個語句,2個分號隔開。
語句塊4;
}
執行過程:
1—>2—>4—>3—>2—>4—>3......
表達式1:循環變量初賦值,開始前執行,只執行一次;
表達式2:循環條件,為真,就執行語句塊4的代碼。為假,循環結束;
表達式3:循環變量增值:每次執行完畢後執行;
注意:
1.for(int a=0;a<5;a++){
語句塊1;
for(int b=0;b<10;b++){
語句塊2;
}
}
核心:
案例1:(while)
1 思路: 2 1)接收用戶輸入的字符串 3 2)判斷用戶是不是敲了回車鍵 4 //定義字符變量接收字符 5 char ch; 6 //定義一個計數器變量,用於保存字符的個數 7 int count=0; 8 //接收用戶輸入的字符串的第一個字符 9 scanf("%c",&ch); 10 //通過循環依次獲取輸入緩沖區的其他字符 11 //ch = '\n' 判斷取到的字符是否是換行符 12 //此處如果是換行符,表示用戶輸入結束 13 while (ch!='\n') { 14 //計數器+1 15 count++; 16 //再次獲取輸入緩沖區的下一個字符 scanf("%c",&ch); 17 } 18 } 19 //打印計數器的值 printf("count = %d\n",count); 統計從鍵盤輸入一行字符的個數案例2:(while,switch)
1 思路: 2 3 1)一直循環等待用戶輸入 4 5 2)輸入四個字符,打印對應的方向 6 7 switch 8 9 //定義變量存儲用戶輸入的內容 10 11 char ch; 12 13 //定義標志,0-正常,1-退出 14 int flag=0; 15 printf("請控制小人移動:w.上 s.下 a.左 d.右 q.退出\n"); 16 17 while (!flag) { 18 19 scanf("%c",&ch); switch (ch) { 20 21 //判斷用戶輸入了大寫和小寫的w的情況 22 23 case 'w': 24 case 'W': 25 26 printf("上\n"); 27 28 break; 29 30 //判斷用戶輸入了大寫和小寫的s的情況 31 32 case 's': 33 34 35 case 'S': 36 37 printf("下\n"); 38 39 break; 40 41 //判斷用戶輸入了大寫和小寫的a的情況 42 43 case 'a': 44 case 'A': 45 46 printf("左\n"); 47 48 break; 49 50 //判斷用戶輸入了大寫和小寫的d的情況 51 52 case 'd': 53 case 'D': 54 55 printf("右\n"); 56 57 break; 58 59 case 'q': 60 61 case 'Q': 62 63 printf("已退出\n"); 64 65 flag = 1; 66 break; 67 68 } } 輸入wsad,打印對應的方向案例3:(if...else,while)
1 思路 2 //1、定義變量,保存玩家競猜的數字和電腦隨機產生的數字 3 //2、讓電腦隨機產生一個1-1000之間的數 4 /* 5 難點:如何產生1-1000的數? 6 arc4random_uniform(1000) 產生的是 0-999之間的整數 7 arc4random_uniform(1001) 產生的是 0-1000之間的整數, 8 我們要求的是1-1000,所以不符合 9 arc4random_uniform(1000)+1 產生的是:0(+1)-999(+1),是 1-1000之間的數 10 得出結論: 要產生m,n之間的隨機數公式 11 arc4random_uniform(n-m+1)+m 12 如產生 10-50之間的隨機數 13 arc4random_uniform(50-10+1)+10; 14 1-1000之間的隨機數 15 arc4random_uniform(1000-1+1)+1 16 */ 17 //3、通過循環控制,讓用戶最多可以競猜10次 18 // 判斷如果競猜的數字>隨機產生的數