扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
控制流:
顺序结构
分支结构
循环结构
======================================
分支结构 :
if else if else
if(表达式)
一条语句;
if(表达式)
一条语句;
else
一条语句;
if(表达式)
一条语句;
else if(表达式)
一条语句;
if(表达式)
一条语句;
else if(表达式)
一条语句;
else
一条语句;
代码块:
{
}
====》效果: 相当于 一条语句
======================================
switch case :
* 姿势 :
switch(表达式)
{
case 选项:
多条语句;
break; //结束switch case 语句
case 选项:
多条语句;
break; //结束switch case 语句
case 选项:
多条语句;
break; //结束switch case 语句
case 选项:
多条语句;
break; //结束switch case 语句
default: // 该default 可以省略
多条语句;
break; //结束switch case 语句
}
*解释:
做选择,表达式 的 值是多少,就去下面寻找 哪一个 选项,然后执行其对应的语句
attention:
选项只能是 整型数(包含字符)
选项值不能重复
break :和 switch 结合 使用,可以结束 switch 语句
练习:
中美分数 : switch case 来做
中美分数替换:
手动输入一个分数,看到底是 ABCDE中的哪一个
90 ~ 100 : A
80 ~ 89 : B
70 ~ 79 : C
60 ~ 69 : D
0 ~ 59 : E
其他: : error
==========================================================
循环结构:
for while do while
============
for :
* 姿势:
for(表达式1;表达式2;表达式3)
有且仅有一条语句A;
* 分析:
表达式1 和 表达式3 都是 赋值表达式 = += -= *= ....
表达式2 是 判断表达式 // 可以判断真假(非0/0)
三个表达式都可以省略
当表达式2 省略表示 死循环(永远成立)
for(;;)
;
* 解说:
1* 执行 表达式1
2* 判断 表达式2 是否成立,成立则继续往下执行,不成立则退出 循环
3* 执行 那一条 语句 A ;
4* 执行 表达式3
5* 继续去执行 第二步(2*)
* for 循环和 代码块结合:
for(表达式1;表达式2;表达式3)
{
猥琐发育;
}
for()
; //空语句
练习:
0. 打印 1 2 3 4 ... 100
1. 打印 1+2+3+...+100 的和
2. 如果碰到 数字 带 5 就跳过 ,不算入总和
3. 如果碰到 68 就结束 for 循环
continue : 和 for 循环配合, 结束所在 的for 循环 的 当次 循环体,然后去执行 表达式3
break :和 for 配合,结束所在的for循环
=================================================
while :
while(表达式)
一条语句A;
*解释:
1* 判断表达式是否成立,如果表达式成立,则执行语句A,然后再去判断表达式
如果表达式不成立,则结束while
* while 循环 和 代码块结合:
while(表达式)
{
}
=================================================
do while :
姿势:
do
一条语句A;
while(表达式);
*解释 :
* 先执行 语句A ,然后去判断表达式是否成立
* 如果表达式成立,继续执行语句A,在去判断表达式
* 如果表达式不成立,则直接退出;
do while 和 代码块 结合:
do
{
}
while(表达式);
============
总结:
for 和 while 和 do while 都是 循环语句
break 和 循环语句 进行 配合,结束所在的循环
continue 和 循环语句 进行 配合,结束当次循环(立马结束循环体(代码块)),进入到下一次循环中
===================================================================
跳转语句:
goto :
* 姿势 :
标签: 某条语句;
....
goto 标签;
attention :
goto 语句的标签 只能和 goto 在同一 函数内
应用:
goto 应用在 需要 立马跳出 多层 循环
for()
{
for()
{
for()
{
goto yy;
}
goto zz;
}
}
yy: printf("....\n");
return -1;
zz: printf("打印个错误\n");
return -2;
qq:
return -3;
=====================================================
控制流 总结:
顺序结构:
分支结构: if else if else switch case
循环结构: for while do while
特别注意: continue 、 break 和循环语句的配合
跳转语句: goto
数组:
* 概念:
同一类型数据 保存 在一块空间中
* 作用:
存储同一类型数据
* 姿势:
定义一个 数组类型 变量
存储基础类型 变量名字[元素个数];
数组类型 : int [5]; ====>这就是 一维数组 类型
定义一个数组类型变量:
int arr[5]; ===>在内存中占用若干个字节,该空间取名为arr
若干个字节: 类型是 int [5] : 里面可以存放5个int类型,总共20个字节
例子:
short arr[10]; // 在内存中占用 10*2 个字节空间,该空间命名为arr
// 该空间 可以存放 10 个short 类型
// 非常经典的话:
数组的名字 是 数组的首地址
* 给数组赋值 :
// 经典的话:
数组一旦定义好,该空间固定,就不允许改变
数组定义好后,只能通过 下标 的方式 给里面的 成员 一一赋值
下标从0开始
arr[下标] : ----》 得到 某 下标 所指示 的那块空间
short arr[10];
arr[0] = 10;
arr[9] = 25;
* 初始化:
* 不完全初始化:
int arr[8] = {10,20};
// 下标为0的地方存放 10 ,下标为1的地方存放20 其他全部变成 0
int arr[8] = {0}; //清零的效果
int arr[8] ={[5]=10,[7]=25};
* 完全初始化:
int arr[8] = {1,2,3,4,5,6,7,8};
int arr[] = {1,2,3,4,5};
=============================================================
一维数组:
short arr[5]; // 可以存放 5 个short 类型
一维数组中 存放了 的元素 是 一维数组
short arr[5] // 数组类型 short [5]
int arr[10]; ===> 存放10个int类型
向存放 : 10 个 short [5] 类型
short arr[10][5] ; // 一维数组里面存放的都是一维数组,称之为二维数组
// 里面可以存放 10 个 short [5] 数据
=====》
二维数组;
* 姿势:
基础类型 变量名字[一维数组个数][每个一维数组中的元素个数];
long arr[2][3];
// 该数组 有 2个 long [3]类型 数据
long [3] 类型: 含有3个 long 类型 数组
* 定义变量:
short arr[2][3]; 变量名字: arr 变量类型: short [2][3]
* 赋值:
通过下标赋值:
short arr[2][3];
arr[0][0] = 10;
arr[0][1] = 20;
.....
* 初始化:
不完全初始化:
int arr[2][3]={10,20,30,40};
arr[0][0]为10
arr[0][1]为20
arr[0][2] 为 30
arr[1][0] 为40
其他 全部为 0
int arr[2][3]={[0][1]=50,[1][1]=60};
完全初始化:
int arr[2][3]={10,20,30,40,50,60};
int arr[2][3]={{10,20,30},{40,50,60}};
int arr[][3] = {{10,20,30},{40,50,60},{40,50,60},{40,50,60}};
=======================================================
指针:
* 地址 (门牌号)
* 姿势:
定义一个指针类型变量:
指针类型 变量名字;
指针类型是什么??
* 操作:
& : 取地址
* : 解引用
=================
& : 取地址
int a = 0x11223344;
==============
* : 解引用
指针的寻址:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流