流程控制
7 月18号学习内容:
1.什么是流程控制-----------程序代码执行的顺序
2.流程控制的分类
(1)顺序执行
(2)选择执行
(3)循环执行
3.流程控制的重要性
在程序之前:# include <stdio.h>
int Main(void){
}
一.顺序执行(略)
二.选择执行 定义:某些代码可能执行,也可能执行,有选择的执行某些代码。
分类:(1)if:
1.if的简单用法
2.if的取值范围
3.if...else用法
4.if...else if...else...用法
5.C语言对真假的处理
6.if举例------求分数的等级
7.if的常见问题解析
1.if的简单用法
格式:if(表达式)
语句;
eg: if(3)
Printf("AAA/n"); //会输出
if(0)
Printf("AAA/n"); //不会输出
2.if的取值范围
格式:if(表达式)
语句A;
语句B;
eg:if(1>2)
Printf(“AAA/n”); //不会输出
Printf(“BBB/n”); //一定会输出
小结:if只能控制语句A的执行或者不执行,if无法控制语句语句B的执行或者不执行。
不管表达式是真或者是假,对B语句的执行都无影响。
If(表达式)
{
语句A;
语句B;
}
语句A,语句B都会执行
小结:由此可见,if只能控制一个语句的执行或者不执行;如果想要控制多个语句的执行或不执行,就不须把这些语句用{}括起来
3.if...else用法
If(表达式)
语句A;
Else
语句B;
eg:if(i>j)
Printf("i大于j");
Else //小于
Printf("i小于j");
4.if...else if...else...用法
If(1)
A;
Else if(2)
B;
Else if(3)
C;
Else
D;
如果1,2,3都不成立,执行D
5.C语言对真假的判断
6.写一个程序:求分数的等级
代码如下:
#include <stdio.h>
int main(void)
{
Float score;
Printf("请输入您的考试成绩:");
Scanf("%f",&score);
If(score>100)
Printf("这是我在做梦");
Else If(score>=90&&score<=100)
Printf("考试成绩为尤");
Else If(score>=80&&score<=90)
Printf("考试成绩为良,");
Else If(score>=60&&score<=80)
Printf("考试成绩为及格,");
Else If(score>=0&&score<=60)
Printf("成绩为不及格,");
Else
Printf("这是做噩梦\n");
}
7.if例子 实现两个数字的互换
Int i,j,k;
i=3;
j=5;
K=i; /*实现互换语句*/
i=j;
j=k;
if例子:求任意3个数的排序(降序)
int a,b,c,t;
Printf("请输入3数(中间以空格分隔):");
Scanf("%d,%d,%d",&a,&b,&c);
If(a<b)
{
t=a;
a=b;
b=t;
}
If(a<c)
{
t=a;
a=c;
c=t;
} =
If(b<c)
{
t=b;
b=c;
C=t;
}
Printf("%d,%d,%d",a,b,c);
8.作业题
(1)判断一个数字是否是素数 (素数:只能被1和它本身整除)
(2)判断一个数字是否是回文数 (回文数:正写,反写都是一个数)
(3)编程实现求一个十进制数字的二进制形式
(4)求一个数字的每位是奇数的数字取出来组合形成新数字
(5)求一个数字倒过来的数字
Switch (以后会进行详细的讲解)
数据结构中的一句话:程序=算法+语言
我的终点:看懂程序,掌握一个程序(看懂,背会)
做法具体如下:
1.看懂程序
2.敲一遍程序,如果出错能加深对程序的理解,弥补。
3.然后可以稍加改动,看会不会出现什么情况。。
如何看懂程序(分3步)
1.流程(先执行....,后执行.....)
2.每个句子的功能
3.试数(根据程序结果,用数来试试)【以后将详细讲讲】
如何学习对一些关于算法的程序
(1)尝试自己去编程解决它
(2)如果解决不了,就看答案
(3)关键是把答案看懂,这个血药花很大的精力,也是我学习的重点,看懂之后尝试自己修改程序,并且知道修改之后的不同输出结果的含义
(4)照着答案去敲,调试错误,不看答案自己独立把答案敲出来
(5)如果程序实在是无法彻底理解,就把它背会
(6)敲代码后,过了4-5天后,在敲一次
9.if常见错误解析:
(1)if(3>2); <---------->if)(3>2)
;
(2)if(表达式); //此行分号写上,导致程序出错
语句A;
Else
语句B; //此为语法错误,没有语句以else开头
(3)if(表达式1)
A;
Else if(表达式2)
B;
Else if(表达式3)
C;
Else
D;
注:当表达式1,表达式2都成立时,只能执行A;
(4)if(表达式1)
A;
Else if(表达式2)
B;
Else if(表达式3)
C;
注:这个逻辑上有漏洞,语法上没问题
(5)if(表达式1)
A;
Else if(表达式2)
B;
Else if(表达式3)
C;
Else(表达式4) //这样写是错的改为:去掉"(表达式4)"或者else if
D;
(6)if(表达式1)
A;
Else if(表达式2)
B;
Else if(表达式3)
C;
Else (表达式4);
D;
注:无语法错误,是无实际意义的语句 ,逻辑上的错误