欢迎各位来到我的直播间,我是今天的Java讲师赵强
周一至周六每天两场直播 下午1点半 晚上7点 一节课90分钟
今天的直播会在19:00 准时开始 请耐心等待
下午跟晚上的内容不一样
今天的直播主题:微信发红包的算法原理
听懂就好 抖音账号: 强哥聊Java
70%讲解 30%实操
微信发红包
100元 10个 10元/个
随机红包到底是如何生成的?
入门---快速上手
入门---学习很多语法,并且熟练记住
快速上手---在什么情况下应该使用什么语法来解决什么问题
分析发红包代码的执行步骤
1.必须要准备红包总金额跟红包总个数
Java中如果想要表示数字的话,必须要使用变量的语法格式
变量:存储一个数据的容器
使用:给数据起名字并且分类的语法
注意事项:起名字不要瞎写 a b c d x y z
Java会通过一些固定的单词来对数据进行分类
double 小数
int 整数
String 文字/符号
2.确保生成的红包金额必须是随机数字
最小值 0 Java中小数的计算很复杂,涉及到了二进制,有点难
最大值 腾讯官方给出的计算公式 总金额/总个数*2
最小值 ~ 最大值
随机数字:每次运行产生的随机数字都不一样 公式/函数 Math.random()
0 ~ max 默认范围 0 <= Math.random() < 1
0 <= Math.random() * max < max
保留到小数点后两位 四舍五入 公式/函数 Math.round(数字)
默认保留到整数位
958 -- 整数
100 -- 整数
整数除以整数只能得到整数
958 / 100 = 9.58----发现他爸妈都是整数 只保留整数部分 --- 9
3.所有的随机红包金额相加必须要等于红包总金额
随机红包的生成方式有两种 条件:看此时是不是最后一个红包 num - 1
Math.random() 其他红包 0 ~ max
总金额-其他红包金额之和 最后一个红包 补差(会大,会小)
需要使用一个容器来存储使用Math.random()生成的随机数字,在容器当中才能使这些数字相加
从而方便我们去计算容器中最后一个红包的值
需要找到一种方式来表示出最后一个红包--------- num - 1
变量:存储一个数据的容器
数组:能够存储多个相同类型数据的容器 int double
数组的创建 暂时还不知道要存储什么数据,但是我们必须要知道存多少个
double[] red = new double[num];
[] 数组的符号
red 数组的名称
num 红包有多少个,数组就能存多少个
数组的定义 1.数组在定义之后,数组会给每个位置上的数据都设定一个默认值
根据数据类型来设定 int ---- 0
double -- 0.0
2.数组在定义之后,数组会给每个位置都设定一个数字标记(下标)
方便通过下标来获取某个位置上的数据
下标-----电影院座位号
下标从0开始统计的
数组最后一个位置的下标 一定写成
数组的容量 - 1 num - 1
数组的使用 通过数组的下标来获取对应位置上的数据
数组的名称[下标]
使用循环结构来节省重复性代码
循环结构:重复执行某段代码
while(循环条件){
代码1
代码2
代码3
代码4
}
条件满足1234 条件满足1234 条件满足1234....直到条件不满足循环结束
无法控制循环的执行次数
控制循环多少次-----循环三要素
要素一:需要定义一个变量来表示循环的执行次数
要素二:需要定义一个判断条件来决定执行多少次循环
要素三:每次循环代码执行结束之后,需要使用要素一定义的变量来统计执行次数
跑不够5圈,你不要回家
int 圈数 = 0; //要素一
while(圈数 < 次数 ){ //要素二 0 1 2 3 4.... 次数 -2 次数 - 1
起点
跑一会
走一会
跑一会
终点
圈数+=1 ; //要素三 在原来数字的基础之上自增1
}
判断是不是最后一个数字---选择结构:根据条件是否满足来选择性执行对应的结果
if(判断条件){
执行结果----条件正确时执行
}else{
执行结果----条件不正确的时候执行
}
如果....就....否则.....
编程的本质: 命令计算机做事情计算机会返回给我们一个结果, 编程语言 ( Java python php .net ...)
不同的编程语言让计算机做的事情是不一样的
编程的过程:创建出一个文件,在文件上编写Java代码,把文件交给计算机去执行
编程工具---专门用来编写代码的软件--- IDEA --- 提高效率
1.减少90%以上单词拼写的工作
2.非常强大的代码提示功能
安装包链接/安装步骤/常用软件/操作视频:--- 百度网盘
如果百度网盘不会用,请自行百度
链接: https://pan.baidu.com/s/1nNXx4bGU1t8Qu2_WuhXr7w
提取码: rxsm
IDEA使用指南: https://juejin.im/post/6844904020780253191
JDK下载地址: https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
idea下载地址:https://www.jetbrains.com/zh-cn/idea/download/#section=windows
MySQL下载地址安装版----https://dev.mysql.com/downloads/installer/
MySQL教程地址----------https://www.freesion.com/article/320672831/
SQLYog下载地址---------https://sqlyog.en.softonic.com/download
我明明知道接下来要做什么,但是这件事情我自己不会做---找"人"帮忙(Java语法)
我生病了---看病---不会----找医生来帮忙
门锁坏了-----开门--不会---叫开锁的
肚子饿了-----吃--不会-----叫外卖
下水道堵了---修--不会-----叫修理工
代码问题----解决--不会----找赵强老师
Java本身给我们提供了6000多个"人"(免费供你使用)
每个人都有自己的独一无二的名字
每个人都有自己份内的可以做的事情
遇到什么问题的时候,就去找对应的"人"来解决问题
找"人"帮忙?????(Java语法)
1.名字 语法:原名 自定义名称 = new 原名()
含义:需要将这个人的原名改成我自己喜欢叫的名字
举例:赵强 赵老师 = new 赵强()
2.在哪 没有语法,只有操作
一行代码自动帮我找"人"===代码不要自己动手写,借助编程工具idea来帮我完成
--- alt+回车 万能键
3.办事 语法:自定义名称.方法(参数)
含义:让谁去做某件事情
方法----能做什么事儿---吃饭、睡觉 唱歌 讲课 写代码 打球.
参数----做某件事情需要用到的东西 碗筷 眼罩
举例: 打球 唱歌 跳舞 写代码 睡觉 喝酒 吃饭 讲课.... 方法
赵老师.讲课(电脑,键盘,鼠标)
赵老师.写代码()
赵老师.洗衣服()----不行
数组的创建 1.知道要存储什么数据
2.暂时还不知道要存储什么数据
数组的定义 1.数组在定义之后,数组会给每个位置上的数据都设定一个默认值
根据数据类型来设定 int ---- 0
double -- 0.0
2.数组在定义之后,数组会给每个位置都设定一个数字标记(下标)
方便通过下标来获取某个位置上的数据
下标-----电影院座位号
下标从0开始统计的
数组的使用 通过数组的下标来获取对应位置上的数据
数组的名称[下标]
循环结构:重复地去执行某段代码
while(循环条件){
代码1
代码2
代码3
代码4.....
}
条件满足1234 条件满足1234 条件满足1234......
1.知道要循环多少次-----循环三要素
要素一:需要定义一个变量来表示循环的执行次数
要素二:需要定义一个判断条件来决定执行多少次循环,判断条件必须要跟要素一的变量有关联
要素三:每次循环代码执行结束之后,�
评论0