//首先进入if判断,由于a=0,所以不匹配 a == 1表达式,则直接退出整个if语句。 //但是此写法会让人误以为由于a=0,所以不匹配 a == 1表达式,则匹配else,输出:不可以谈恋爱,但注意此处 //else会与它紧紧挨着的if匹配,即if(b==2)匹配上,但是if(b==2)又是if(a==1)表达式为真的前提下才行 #include<stdio.h> intmain() { int a = 0; int b = 2; if (a == 1) if (b == 2) printf("可以谈恋爱\n"); else printf("不可以谈恋爱\n"); return0; }
//修改后代码 #include<stdio.h> intmain() { int a = 0; int b = 2; if (a == 1) { if (b == 2) { printf("可以谈恋爱\n"); } else { printf("不可以谈恋爱\n"); } } return0; }
//输出数组所有元素 #include<stdio.h> intmain() { int arr[] = {1,2,3,4,5,6,7,8,9,10}; int i; //第一次循环首先将i初始化为0,这个初始化部分只会执行1次,此时i<10(只有判断条件为真才会进入循环) //执行循环语句输出arr[0],然后进入调整部分让变量i加1,此时i=1; //第二次循环,首先进入判断部分进入判断;此时i<10 即 1<10为真,执行循环语句输出arr[1],然后进入调整部分 //让变量i+1,此时i=2;后续循环跟第二次循环类似 //注意:初始化部分在整个for循环只执行1次,判断部分会比循环语句多1次 for (i = 0; i < 10; i++) { printf("%d ", arr[i]); } return0; }
输出
1
12345678910
break:循环中遇到break直接终止整个循环(while、do while中也一样)
1 2 3 4 5 6 7 8 9 10 11 12 13
//在1-10中输出小于5的数 #include<stdio.h> intmain() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) //当i == 5时,if条件为真,执行break,跳出整个for循环,所以数字5及后续数字不会打印 break; printf("%d ", i); } return0; }
#include<stdio.h> intmain() { int i = 0; for (i = 1; i <= 10; i++) { if (i == 5) //当i == 5时,if条件为真,执行continue,终止本次循环后面代码(即5不会打印)。直接跳到调整部分,i++后i为6,进行下一次循环的判断 continue; printf("%d ", i); } return0; }
输出
1
1234678910
while循环
语法: while(表达式) 循环语句
当表达式为真时执行循环语句,然后再次判断…
1 2 3 4 5 6 7 8 9 10 11 12
//输出1-10 #include<stdio.h> intmain() { int i = 1; while (i <= 10) //当表达式为真执行里面{ }内循环语句 { printf("%d ", i); i++; //调整部分,使i变量逐渐大于10后终止循环,没有调整部分将会是死循环 } return0; }
输出
1
12345678910
break:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
//输出1-4 #include<stdio.h> intmain() { int i = 1; while (i <= 10) //当表达式为真执行里面{ }内循环语句 { if (i == 5) //当i==5时执行break,终止整个while循环 break; printf("%d ", i); i++; } return0; }
输出
1
1234
continue
1 2 3 4 5 6 7 8 9 10 11 12 13
#include<stdio.h> intmain() { int i = 1; while (i <= 10) //当表达式为真执行里面{ }内循环语句 { if (i == 5) //当i==5时执行continue,终止本地循环continue后面部分,i++不会执行,所以进入判断部分i还是5,导致死循环 continue; printf("%d ", i); i++; //调整部分,使i变量逐渐大于10后终止循环,没有调整部分将会是死循环 } return0; }
输出
1
1234//死循环,后面光标一直闪烁,程序没有停止运行
do while循环
语法 do 循环语句 while(表达式)
do while与while基本相同,表达式为真才会执行循环语句。但是do while第一次执行时不会判断表达式 。即就算表达式为假也会执行一次循环语句 do while 适用场景:某个功能必须执行一次,后续是否执行通过是否满足条件判断
1 2 3 4 5 6 7 8 9 10
#include<stdio.h> intmain() { do { printf("哈哈哈\n"); } while (0); //第一次循环时输出 哈哈哈,由于表达式为假,退出do while循环 return0; }
输出
1
哈哈哈
break
1 2 3 4 5 6 7 8 9 10 11 12 13 14
//输出1-4 #include<stdio.h> intmain() { int i = 1; do { if (i == 5) break; printf("%d ", i); i++; } while (i <= 10); return0; }
输出
1
1234
continue
1 2 3 4 5 6 7 8 9 10 11 12 13
#include<stdio.h> intmain() { int i = 1; do { if (i == 5) //当i=5时表达式为真,执行continue,直接到判断部分,此时i<=10进入循环语句,但i=5时表达式为真,执行continue,直接到判断部分依此类推,程序陷入死循环 continue; printf("%d ", i); i++; } while (i <= 10); return0; }