黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始---
(以下内容是对黑马苹果入学视频的个人知识点总结)
(一)流程控制
1> 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
2> 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
3> 循环结构:在给定条件成立的情况下,反复执行某一段代码。
(二)选择结构-if
1.if的第1种结构 if(条件) { 语句1; 语句2; ...... } 2.if的第2种结构 if(条件1) { 语句1; 语句2; ...... } else { } 3.if的第3种结构 if(条件1) { 语句1; 语句2; ...... } else if(条件2) { } else if(条件3) { } else if(条件4) { } else { } 4.if的第4种结构 if (条件) 语句1;
以上是if的几种运用方法、
(三)选择结构-switch
应用switch(表达式) { case 数值1: break; … default: break;}
1 #include <stdio.h> 2 3 int main() 4 { 5 //int a = 10; 6 // break:退出整个switch语句 7 // 如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止 8 char c = '+'; 9 int a = 10; 10 int b = 20; 11 // 如果要在case后面定义新的变量,必须用大括号{}包住 12 switch (c) { 13 case '+': 14 { 15 int sum = a + b; 16 printf("和是%d\n", sum); 17 break; 18 } 19 20 case '-': 21 { 22 int minus = a - b; 23 printf("差是%d\n", minus); 24 break; 25 } 26 } 27 28 return 0; 29 }
1)if和switch的对比
1>通常很多情况下,他们是可以互换的 但是if用的更多一些,而且运用比较灵活,switch只能用于单值,引用的比较少。最主要的是if语句能完成的功能,switch并不一定能完成,switch能完成的功能,if语句都能完成。
(四)循环结构-while
while (条件)
{
循环体
}
1>运行原理
①如果一开始条件就不成立,永远不会执行循环体
②如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立......
break
直接结束整个while循环
continue
结束当前的循环体,进入下一次循环体的执行
#include <stdio.h> int main() { // 1.先确定需要重复执行的操作 // 2.再确定约束条件 // 定义一个变量记录做的次数 int count = 0; /* while (count<50) { ++count; if (count%10 != 0) { printf("做第%d次俯卧撑\n", count); } }*/ /* while (count<50) { ++count; if (count%10 == 0) { // 直接结束这一次循环体,进入下一次循环 continue; } printf("做第%d次俯卧撑\n", count); }*/ while (count < 50) { ++count; printf("做第%d次俯卧撑\n", count); if (count == 20) { break; } } return 0; }
使用循环时主要是之一循环次数变量选对,而且循环可以嵌套的。注意关键词break和continue的灵活运用。
1>循环结构do while
与while相比较,最主要的特点是一定会执行一次循环体。
1 int i=0; 2 while(i<0){ 3 i++; 4 } 5 6 int i=0; 7 do{ 8 i++; 9 } while(i<0);
while和do-while的区别
1.很多情况下,while和do while可以互换
2.while特点:如果一开始的条件不成立,永远不会执行循环体
do while特点:不管一开始的条件是否成立,至少会执行一次循环体
3.最好使用while
(五)循环结构 for
for (语句1; 条件; 语句2) {
循环体
}
1>for一开始就会执行一次语句1(整个for循环只会执行一次)
2>判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立
使用时应该注意一下:①不要随便在for()后面写分号 ②错误:变量a的作用域不明确,如果要在循环体中定义新的变量,必须用大括号{}包住③循环体内定义变量只能再循环体内用,有时候有可能会变成死循环。
for循环是可以循环嵌套的
1 /* 2 提示用户输入一个正整数n,如果n=5,就输出下列图形,其他n值以此类推 3 ***** 4 **** 5 *** 6 ** 7 * 8 */ 9 10 #include <stdio.h> 11 12 int main() 13 { 14 // 1.定义一个变量存储用户输入的值 15 int n = 0; // 一定要初始化 16 17 // 2.判断n值合不合理 18 while (n <= 0) 19 { 20 // 2.1 提示用户输入正整数 21 printf("请输入一个正整数:\n"); 22 23 // 2.2 接收输入的数据 24 scanf("%d", &n); 25 } 26 27 // 3.输出图形 28 for (int i = 0; i<n; i++)// 有多少行 29 { 30 //printf("*****\n"); 31 for (int j = 0; j<n-i; j++) 32 { // 每一行有多少个 33 printf("*"); 34 } 35 36 printf("\n"); 37 } 38 39 return 0; 40 }
(六)break和continue
1> break
①使用场合:switch\循环结构
②循环嵌套下的break
2>continue
① 使用场合:循环结构
②循环嵌套下的continue