分支和循環語句
分支語句
switch
switch 允許嵌套使用
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
int main()
{
int n = 1;
int m = 2;
switch (n)
{
case 1:m++;
case 2:n++;
case 3:
switch (n)
{ //switch 允許嵌套使用
case 1:n++;
case 2:m++; n++; break;//此處的break僅僅是跳出對應的switch語句
}
case 4:m++; break;
default:
break;
}
printf("m=%d\nn=%d\n", m, n);
system("pause");
return 0;
}
default 語句
匹配那些不能匹配到case 的語句。
if else 語句
0表示假 非0表示真 真則執行語句
else 是與緊鄰的if匹配
在語句裏面要注意 else 後面直接跟語句,要加條件必須else if.
循環語句
for 循環語句
關於for語句後面加了分號
加分號,表示這個循環是空語句,除了執行for()括號裏的,什麼都不幹,然後就執行下一行。
不加分號,那for循環後面的printf語句就是for循環的一部分,跟着for一起執行,但前提是for循環裏的條件要滿足。
分號代表語句結束。
例如:
for(i=0;i<100;i++);
就等於:
for(i=0;i<100;i++)
{
;
}
一個很坑人的代碼
int main()
{
int i = 0; int k = 0;
for (i = 0, k = 0; k = 0; i++, k++)
k++;
return 0;
} //一次循環都不執行
for (i = 0, k = 0; k = 0; i++, k++) 注意那裏是賦值語句k=0不是判斷
==一個等號賦值語句0 爲假因此一次循環都不執行 ==
① 不可在for循環內修改循環變量,防止for循環失去控制。
② 建議for語句的循環控制變量的取值採取半開半閉的寫法
while 循環語句
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
while (i <= 10)
{
printf("%d ", i);
i++;
if (5 == i)
break;
}
system("pause");
return 0;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 1;
while (i <= 10)
{
if (5 == i)
continue; //死循環
printf("%d ", i);
i++;
}
system("pause");
return 0;
}
兩個輸出的結果均爲1-4
不同的是第二個是一個死循環打印4後 執行i++ i=5
程序到if (5 == i);
continue;
i一直爲5
continue 直接跳到了判斷部分
在此與for的continue 進行一個對比
1.for的continue 結束本次循環 跳到調整部分 先調整再判斷
而while的continue 直接跳到了判斷部分
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
for (i = 1; i <= 10; i++)
{ if (5 == i)
continue;
printf("%d\n", i);
}
system("pause");
return 0;
}
2.for與while 相比較三個表達式在一起 更加方便看比較常用。
不會因爲循環部分過長導致判斷部分和條件調整部分而隔開。