黑马程序员——c语言的流程控制

1、 流程控制

● 顺序结构:默认的流程结构。按照书写顺序执行每一条语句。

● 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。

● 循环结构:在给定条件成立的情况下,反复执行某一段代码。

2、 选择结构-if

1. 简单使用

● if (表达式)  语句1;     注:如果条件为真,就执行后面的语句,否则不执行。

◆ if(count>50)  开班;  上课;

 1 #include <stdio.h>
 2 int main()
 3 {
 4   // 人数
 5   int count = 80;
 6
 7   if ( count >= 50 )
 8   {
 9   printf("开班!!!\n");
10   printf("准备机器!!!\n");
11   }
12
13     return 0;
14 }

● if(表达式)  语句1;  else 语句2;      注:如果条件成立就执行语句1,否则执行语句2。

◆ if(count>50)  开班;  else 不开班;

 1 #include <stdio.h>
 2 int main()
 3 {
 4   // 人数
 5   int count = 40;
 6
 7   if ( count >= 50 )
 8   {
 9   printf("开班!!!\n");
10   printf("准备机器!!!\n");
11   }
12   else
13   {
14       printf("不开班!!!\n");
15       printf("不准备机器!!!\n");
16
17   }
18
19     return 0;
20 }

● if(表达式)  {  }

◆ if(count>50)  {开班; 布置课室;}  else {}

◆ { }的作用域

● if -else if-else

◆ if(a==0) else if (a>0)  else

◆ 特点:只有一个括号会被执行

 1 #include <stdio.h>
 2 int main()
 3 {
 4     int a = 5;
 5
 6     if (a++ > 18) // a == 6
 7     {
 8         printf("A\n");
 9     }
10     else if (a++ > 9) // a == 7
11     {
12         printf("B\n");
13     }
14     else if (a++ > 5)  // a == 8
15     {
16         printf("C\n");
17     }
18     else
19     {
20         printf("D\n");
21     }
22
23     printf("a的值是%d\n", a);
24
25     return 0;
26 }

● 陷阱

◆ if(a!=0)  { a不是0;} else {a是0;}

◆ if (a); {  }      if后不要写分号

◆ if (a=0)     错误

◆ a == 0;

◆ if (10) int a = 9;

注:

if (a>1)

printf("A\n");

    printf("B\n");

不管a取多少B都打印与if语句没关系

2. 习题

1> 输入一个整数day代表星期几,根据day的值输出对应的星期几,比如day==1,就输出“星期一”

 1 #include <stdio.h>
 2 int main()
 3 {
 4     // 1.输入一个整数day
 5     printf("输入一个整数day\n");
 6
 7     // 2.接收输入
 8     int day;
 9     scanf("%d", &day);
10
11     // 3.判断等级
12     if (day == 1) {
13         printf("星期一\n");
14     } else if (day == 2){
15         printf("星期二\n");
16     } else if (day == 3) {
17         printf("星期三\n");
18     } else if (day == 4) {
19         printf("星期四\n");
20     } else if (day == 5) {
21         printf("星期五\n");
22     } else if (day == 6) {
23         printf("星期六\n");
24     } else if (day == 7) {
25         printf("星期日\n");
26
27     }
28         return 0;
29 }

2> 输入一个整数month代表月份,根据月份输出对应的季节。

春季:3、4、5

夏季:6、7、8

秋季:9、10、11

冬季:12、1、2

 1 #include <stdio.h>
 2 int main()
 3 {
 4     // 1.输入一个整数day
 5     printf("输入一个整数month代表月份");
 6
 7     // 2.接收输入
 8     int month;
 9     scanf("%d", &month);
10
11     // 3.判断等级
12     if (month == 3||month == 4||month == 5) {
13         printf("春季\n");
14     } else if (month == 6||month == 7||month == 8){
15         printf("夏季\n");
16     } else if (month == 9||month == 10||month == 11) {
17         printf("秋季\n");
18     } else if (month == 12||month == 1||month == 2) {
19         printf("冬季\n");
20     }
21         return 0;
22 }

3> 输入一个整数score代表分数,根据分数输出等级(A-E)(用两种方式)

A:90~100

B:80~89

C:70~79

D:60~69

E:0~60

 1 #include <stdio.h>
 2 int main()
 3 {
 4     // 1.提示输入
 5     printf("请输入分数值:\n");
 6
 7     // 2.接收输入
 8     int score;
 9     scanf("%d", &score);
10
11     // 3.判断等级
12     if (score>=90 && score<=100) { // [90, 100]
13         printf("A\n");
14     } else if (score>=80) { // [80, 89]
15         printf("B\n");
16     } else if (score>=70) { // [70, 79]
17         printf("C\n");
18     } else if (score>=60) { // [60, 69]
19         printf("D\n");
20     } else { // (-∞, 59]
21         printf("E\n");
22     }
23     return 0;
24 }

3、 选择结构-switch

1. 简单使用

● switch(表达式) { case 数值1: break; … default: break;}

● 举例

int a = 10;

switch (a) {

case 0:

printf("这是一个0");

break;

case 5:

printf("这是一个5");

break;

case 10:

printf("这是一个10");

break;

default:

printf("什么也不是");

break;

}

● 简述break的作用

● 在case中定义变量

2. if和switch的对比

● 很多情况可以互换

● if用得比较多,比较灵活,switch只能某个单值

3. 习题

用switch替代if实现if中的习题

4、 循环结构-while

1. 简单使用

● 连续printf(“俯卧撑”)20次;

● while(表达式) { }

● continue:输出5次休息一下

● break的使用:某次的时候停止循环

2. 特点

只有条件成立才会执行循环体

3. 习题

1> 提示用户输入一个正整数n,计算1+2+3+…+n的和

2> 提示用户输入一个正整数n,计算1-2+3-4+5-6+…+n的和

4. 陷阱

while(条件);

5、 循环结构-do while

● 特点:一定会执行一次循环体

● while和do while循环对比

int i=0;
while(i<0){
i++;
}

int i=0;
do{
i++;
} while(i<0);

6、 循环结构-for

1. 简单实用

● 运行过程

● 初始化语句等可以是多句(把printf放到for的括号中)

2. for循环嵌套

好友列表1

?好友1

?好友2

好友列表2

?好友1

?好友2

好友列表3

?好友1

?好友2

3. 陷阱

1> 死循环 for(;;);

2> for循环体内部变量的作用域

3> 作用域混淆

for (int i = 0; i<5; i++)  int a = 10;

4. while循环和for循环的比较

● 可以互换

● for循环的变量可以及时回收

5. 习题

1> 提示用户输入一个正整数n,如果n5,就输出下列图形,其他n值以此类推

2> 输出九九乘法表

7、 break和continue

1. break

● 使用场合:switch\循环结构

● 循环嵌套下的break

2. continue

● 使用场合:循环结构

● 循环嵌套下的continue

时间: 2024-10-06 16:33:33

黑马程序员——c语言的流程控制的相关文章

黑马程序员——Java基础语法---流程控制与函数

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! -------       程序控制流 一.程序流程控制 也称语句,主要有:判断结构.选择结构和循环结构. 1. 判断结构——if if语句的三种格式: a)  if(条件表达式) { 执行语句: } b)  if(条件表达式) { 执行语句: } el

黑马程序员---java基础语法--流程控制与函数

-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一.程序流程控制 也称语句,主要有:判断结构.选择结构和循环结构. 1. 判断结构——if if语句的三种格式: a)  if(条件表达式) { 执行语句: } b)  if(条件表达式) { 执行语句: } else { 执行语句: } c)  if(条件表达式) { 执行语句: } else  if (条件表达式) { 执行语句 } …… else { 执行语句: } if

黑马程序员_01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)

------- android培训.java培训.期待与您交流! ---------- Java语言主要由5中符号组成 标识符:数字.字母.美元符.下划线(注意不能数字开头) 关键字:goto和const保留了它们,但是Java没有使用. 运算符:注意运算符优先级(左结合和右结合要注意) 分隔符:注意+号可以分割字符串. 注释:三种注释. 数据类型与变量 常量: 整型 浮点型 字符:注意后面跟三个八进制(\ddd)和 四位unicode码(\u8bf7) (不区分大小写) 字符串 布尔型 变量:

黑马程序员-c语言基础:各种数据类型的输出占位符

c语言中的输出操作相对java来说是比较麻烦的,每种数据类型的输出都有各自的占位符: 下面是各种数据类型的输出占位符: short/int : %d int a = 1; printf("这个整数是:%d", a); long: %ld; (long 是int得修饰,不能算是一种单独的数据类型,只是比int多了四个字节的存储空间) long long: %lld char : %c float/double : %f  float默认是6位小数输出:可以在%f中控制:例如:%.2f:输

黑马程序员_C语言总结-基础部分

C语言基础 1.C语言的关键字 1>关键字就是C语言提供的有特殊含义的符号,也称为保留字,C语言中一共有32个关键字,这些关键字都有自己的含义 例如:int double float if  else switch for 等等 2.标示符的概念: 1>标示符就是在程序中自定义的一些名称,比如函数名,变量名,结构体名等等这些都是标示符 2>命名规则: 1>只能由英文字母的大小写和数字以及_下划线组成,且首字母必须为字母或者下划线_ 2>在C语言中是严格区分大小写的,比如if是

黑马程序员_OC语言前期准备

OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应用程序. 拓展名:c语言-.c  OC语言.-m  兼容C++.-mm 注:其实c语言和oc甚至任何一门语言都只是我们为了实现一些功能,达到一些效果而采用的工具,抛开语法的差别外,我想最重要的应该是在解决问题的时候考虑的角度和方法不一样而已,然而这也构成了学习一门语言的重要性. 二.语法预览 (一)

黑马程序员-c语言变量作用域问题

c语言中的变量作用域总结 不管什么语言,main好像总是程序的入口,大括号是它的内容:变量的作用域总是困扰着我们,接下来,我们循序渐进的搞明白c语言中的变量作用域,首先得知道c是弱类型的语言,弱类型表现在很多方面: 1:你可以直接在程序中写一个常量,然后一个分号:1: 2:在定义函数时,void型的函数可以return:int型的可以不用写返回值. ---还有很多 下面我们一步一步开始:首先在main中定义的变量当然作用于整个main函数了 1:在main中定义变量 #include<stdio

黑马程序员——c语言学习心得—— 指针

黑马程序员——c语言学习心得—— 指针 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1,打开文件fopen(文件名,打开方式);例如:FILE *fp = fopen("a1","r");  返回的是文件的指针(文件在内存缓冲区的首地址)fopen函数反回值 是指向 a1文件的指针,通常赋值给一个指针变量关于文件名a1 也可以是一个“路径+文件名”   c:\abc.txt----------------

黑马程序员——c语言学习心得——位运算符

黑马程序员——c语言学习心得——位运算符 -------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 位运算符C语言提供了六种位运算符: & 按位与 | 按位或 ^ 按位异或 ~ 取反 << 左移 >> 右移 1. 按位与运算 按位与运算符"&"是双目运算符.其功能是参与运算的两数各对应的二进位相与.只有对应的两个二进位均为1时,结果位才为1 ,否则为0.参与运算的数以补码方式出现. 例如:9&