-
预科第七天
今天讲的内容真的不多,真正花时间讲的只有条件流程和循环流程,虽然是同一个老师讲课,但是感觉还没有第一次学习时学到得多,明显感觉到理解起来有困难,最大问题一直是不能把知识点串联起来,没有一点编程思维。
23:三大流程控制
1>顺序流程控制
2>条件流程控制
语法:
①if(条件)
{}
#include <stdio.h>
int main()
{
// 1.判断输入的一个数是否是偶数,想两种方法,代码实现
//运算优先级:关系运算符>位
int num;
scanf("%d",&num);
if((num&1)==0)
{
printf("偶数\n");
return ;
}
printf("奇数\n");
}
规则:如果条件成立就运行if{}里面的内容,否则就运行{}下面的代码
②if(条件)
{}
else
{}
#include <stdio.h>
int main()
{
// 大写字母转换为小写字母
char ch;
scanf("%c",&ch);
if(ch >= 65 && ch <= 90)
{
printf("大写字母\n");
printf("小写字母=%c\n",ch + 32);
}
else
{
printf("不是大写字母\n");
}
return 0;
}
③if(条件)
{}
else if(条件)
{}
else if(条件)
{}
……
else
{}
#include <stdio.h>
int main()
{
// 90~100:A 80~89:B 70~79:C 60~69:D 0~59:E
int score;
scanf("%d",&score);
if(score>=90&&score<=100)
{
printf("A\n");
}
else if (score>=80)
{
printf("B\n");
}
else if (score>=70)
{
printf("C\n");
}
else if (score>=60)
{
printf("D\n");
}
else if (score>0)
{
printf("E\n");
}
return 0;
}
④if的注意点:
可以没有else,如果要有else就必须放在最后面
⑤switch-case
switch()
{
case 常量1:
代码;
break;
case 常量2:
代码;
break;
……
default:
break;
}
#include<stdio.h>
int main()
{
// 判断输入的一个字母是否是元音字母 a e i o u
//看有没有循环,看外面有没有switch
char ch=getchar();
switch (ch)//表达式
{
case 'a':
printf("=====a\n");
printf("这是a\n");
break;
case 'e':
printf("这是e\n");
break;
case 'i':
printf("这是i\n");
break;
case 'o':
printf("这是o\n");
break;
case 'u':
printf("这是u\n");
break;
default:
printf("其他\n");
break;
}
return 0;
}
switch语句注意点:
1)case后面的常量不能相同
2)case后面只能放常量
3)default可有可无,也可以是任意位置,一般放在最后
4)每个case后面必须加上break,如果不加,当条件匹配一个常量时,会继续运行下去,直到碰到break(break跳出看有没有循环和switch)
5)在case语句中不能定义变量
6)在switch语句中,左大括号{下面不要做太多的动作,如下1》和2》代码将永远不会被执行,原因:switch语句拿到变量的值直接找case匹配
1》int i;
2》printf("gdsfgfdg");
case 'a':
printf("这是a\n");
break;
7)执行的代码不能放在case和case之间,如下1》不会被执行
case 'a':
printf("这是a\n");
break;
1》printf("fsdfds");
case 'e':
printf("这是a\n");
break;
3>循环流程控制
①while循环
while(条件)
{}
#include <stdio.h>
int main()
{
//计算1~100的和
int sum=0;
int i=1;
while (i<=100)
{
sum=sum+i;
i++;
}
printf("i=%d,sum=%d\n",i,sum);
return 0;
}
#include <stdio.h>
int main()
{
//打印九九乘法表
int row,colum;
row=1;
while (row<=9)
{
colum=1;
while (colum<=row)
{
printf("%dX%d=%-2d ",colum,row,colum*row);
colum++;
}
printf("\n");
row++;
}
return 0;
}
规则:当条件成立就执行{}里面的代码,执行完里面的代码之后再回过头来判断上述条件是否成立,如果成立就再去执行{}里面的代码,一旦条件不成立就执行{}下面的代码。
②do……while循环
do
{
}while(条件);
#include <stdio.h>
int main()
{
//1~100的和
int i=1,sum=0;
do
{
sum=sum+i;
i++;
}while(i<=100);
printf("i=%d\nsum=%d\n",i,sum);
return 0;
}
规则:先执行{}里面的代码,执行完成之后,再去判断条件是否成立,如果条件成立,继续执行{}里面的代码,直到条件不成立,执行while下面的代码
注意点:do……while语句后面有分号