一、程序的执行顺序
1、程序是顺序执行 一行行代码逐条语句执行
*行数呈深蓝色 //断点:调试的时候使用 程序执行到这个位置就会暂停
2、分支结构 在顺序执行的时候,遇到分支结构(if、switch) 会选择正确的分支继续顺序执行
3、循环结构 在顺序执行的时候 遇到循环结构 会在符合循环的环境下 一直循环执行 直到不再符合条件 继续顺序执行
二、关系运算符
关系运算符:是比较两个元素的关系的对比符号
<(小于)、>(大于)、==(相同)、<=(小等于)、>=(大等于)、!=(不相同)
三、逻辑运算符
&&(并且)、||(或者)、!(取反)(int a=5; !a;)
关系运算符和逻辑运算符只有两种情况(是(真)、否(假))
四、分支结构之一 if语句
if就是 如果 假设 ,if语句 是假设 这个表达式是否成立
如果表达式可以成立(是正确的),就执行功能代码。
如果表达式没有成立,就不搭理他。
程序是顺序执行的当执行到if语句那发现有个分支结构判断
是否满足条件 如果满足 就进入分支 如果不满足 就跳过
if (表达式){
功能代码
}
eg:输入你父亲的年龄,如果大于40就是个好父亲。
第一种方式:
int fatherAge = 0;
printf("请输入您父亲的年龄:");
scanf("%d",&fatherAge);
int result = fatherAge >=40;
printf("是不是大于等于40岁?%d\n",result);
if (result == 1) {
printf("您父亲倍儿棒!\n");
}
else {
printf("您父亲倍儿倍儿棒!\n");
}
1.条件判断:<、>、<=、>=、==、!= 关系运算符计算结果都只是 真(1)或者假(0)两种结果
2.***当只有两个条件可以选择的时候,优先使用if语句
3.判断结果是不是1(是不是真的),如果是真的就进入花括号内执行里面的代码;如果不是真的,就跳过;
4.result可以换成fatherAge>=40
5.当不满足if语句里面的条件的时候,让他执行另外一个分支。可以使用else(否则)
第二种方式:
int fatherAge = 0;
printf("请输入您父亲的年龄:");
char *mesaage; //char * 字符串(一段文字)
if (fatherAge>=40) {
mesaage = "您父亲倍儿棒!";
}
else{
mesaage = "您父亲倍儿倍儿棒!";
}
printf("%s\n",mesaage);
eg:如果上课人数大于60,学习氛围倍儿好!否则,没来的去当葫芦娃了!
int num;
printf("请输入上课人数:");
scanf("%d",&num); //跟上一个scanf隔开,格式化字符串前面加个空格
if (num>60) {
printf("你们的学习氛围倍儿好!");
}
else{
printf("没来的去当葫芦娃了!");
}
如果1.只有两个条件可以选择,2.并且有两个可能发生的结果;3.再并且分支结构里面没有嵌套使用其他内容;4.可以使用三目运算。⬇️
五、三目运算
三目运算不要多个嵌套使用
可以理解为 一重if判断的简写
三目运算的公式:表达式?(问电脑表达式是不是真的)
第一个结果(真的):
第二个结果(假的);
//第一种方式
int a=33;
char *sss;//char * 字符串(一段文字)
scanf("%d",&a);
if (a<33) {
sss="是滴";
}
else{
sss="FP";
}
printf("%s\n",sss);
//三目运算
int a;
char *r=a<33?"是滴":"FP";
scanf("%d",&a);
printf("%s\n",r);
六、枚举
枚举:逐个的列举 他本身是有顺序的 当打破默认的顺序 会按照打破顺序的地方继续按顺序排列
枚举:列举 一个一个按顺序罗列出来
enum 默认从0开始按顺序罗列出来
当有一个元素值发生改变,如(0、1、(2)、3)突然2改变成3,则接着按顺序罗列(0、1、3、4)
枚举用字符串来表示这些数字,这样的好处:1.很直观的了解这个数字的含义;2. 当改变字符串对应的数字的时候,不会影响到程序里面的代码;⬆️
枚举的公式之一:⬇️
enum 枚举的名字{
枚举的例子,(使用逗号隔开,默认从0开始)
枚举的例子,(当这个元素的值改变成5,下个元素默认是6)
枚举的例子(最后一个元素没有逗号)
};
eg:
enum Type{
Red,
Orange=5,
Yellow,
Green
};
enum 枚举名 变量名 = 枚举值;
enum Type type = Yellow;
printf("%d\n",type);
(输出为6)
枚举的公式之二:
typedef 用来替代(enum枚举的名字)
typedef enum 枚举的名字
{
枚举的例子,(使用逗号隔开,默认从0开始)
枚举的例子,(当这个元素的值改变成5,下个元素默认是6)
枚举的例子(最后一个元素没有逗号)
}要替代的名字;
eg:
typedef enum Type{
Red,
Orange=5,
Yellow,
Green
}Color;
Color color = Green;
printf("%d\n",color);
什么情况下使用枚举:
1.当某些数字具有一定意义的时候,可以使用枚举,直观的体现这些数字的意义;2.在编程过程中有可能修改需求,把具有特定意义的数字修改成别的数字,防止修改大量代码,节省工作量。
七、分支结构之二 switch
当有多个条件可以提供选择的时候,可以使用switch,来替代if;
当条件变量满足第某个条件的时候,会跳到对应的条件里面去执行代码➡️遇到(break)会跳出switch继续执行
switch的判断条件只能是short char int long 类型;
switch常与枚举配合使用;
switch (条件变量) {
case 条件1:
具体代码
break;
case 条件2:
具体代码
break;
case 条件3:
具体代码
break;
default:
break;
}
注意:每一个分支条件后面必须跟一个break来跳出花括号,如果没有跳出,会继续往下执行。
default:默认 任何条件 都不满足的时候 进入default
eg:
typedef enum LoginType{
Acc = 10,
QQ,
Sina,
WeiXin
}LoginType;
//定义LoginType这个枚举的变量
LoginType type;
// 输入一个数字来判断用户使用哪种方式登陆
scanf("%d",&type);
switch (type) {//表示type到底是多少
case Acc:
printf("账号登陆");
break;
case QQ:
printf("QQ登陆");
break;
case Sina:
printf("Sina登陆");
break;
case WeiXin:
printf("WeiXin登陆");
break;
default:
printf("没有这种登陆方式");
break;
}
while 循环:
先判断再执行
格式:while(表达式){
循环体
}
作用:循环执行某段代码
int a = 10;
while (a < 15) {
a++;
}
//如果条件正确才会执行这里,并且一直循环执行,知道不再满足这个条件为止
eg:1-100中7的倍数
int a = 0;
while (a<100) {
a++;
if (a % 7==0) {
printf("0-100中7的倍数: %d\n",a);
}
}
eg: int num = 0;
while (num<100) {
num++;
if (num % 10==7) {
printf("个位为7的数:%d\n",num);
}
}
do - while :先执行后判断
格式:do{
循环体
}while(表达式);
用法:不管条件如何,先执行一遍,接着判断表达式,如果条件成立,继续执行。
eg:输出5次“I am handsome”
int a=0;
do {
a++;
printf("I am handsome %d\n",a);
} while (a<5);
eg:1-100中7的倍数
int a=0;
do {
a++;
if (a%7==0) {
printf("7的倍数:%d\n",a);
}
} while (a<100);
**代码是按照顺序执行的
eg:1-100中7的倍数
int a=1;
do {
if (a%10==7) {
printf("个位为7: %d\n",a);
}
a++;
} while (a<=100);
**使用随机数需要导入#include
**随机数函数:arc4random()
a-b的范围 arc4random()%(b-a+1)+a
**取1-5的随机数:arc4random()%5+1
**取100-500的随机数:arc4random()%401+100
1、要想取一个随机数 (确定 取随机数的范围)
10 - 15 (确定随机数的范围 包含10 和15 以及他们之间的范围)
// 了解随机数 :随机数的值 是从0开始 取随机数的范围是多少(10 - 15 的范围是6)随机数 取余的数 就是6
// 使用随机函数:arc4random()%6(取出来的值 是0 1 2 3 4 5)(随机数 取值 是从0开始 一直到 范围(6)结束(不包括范围(6)))
// 如果想取10 - 15 的随机数 在取出来的随机数 后面加最小的那个数字(10)即可
continue 语句:用在循环语句中
当符合某个条件的时候,跳过这个条件***继续执行***
break 语句:当符合某个条件的时候,直接跳出循环。
eg: int a=0;
while (a<5) {
a++;
//当a的值为4的时候
if (a==4) {
//跳过并继续执行
continue;
}
printf("%d\n",a);
}
****在不知道循环多少次的时候用while或者do - while
如果知道循环次数,可以选择使用for循环*****
for循环语句:
for (初始值变量;循环的条件;改变变量){
循环语句
}
eg:
//打印十年经历的春夏秋冬,并标记是第几年的
for (int i =1; i<=10; i++) {
printf("这是第%d年的\n",i);
}
for 步骤
1、初始化变量并赋值
2、判断变量是否满足循环条件
3、*如果满足循环条件,进入循环,执行循环语句
4、执行完循环语句里面的代码,让变量改变
第一次循环执行完毕
5、第二次循环,再次判断变量是否满足循环条件
6、如果满足,进入第三次,不满足跳出循环