顺序
条件分支
循环
配合于java变量类型使用
思考: 全局变量(确定)
实现程序逻辑
拍24
通过程序看优化:
流程:1、系统产生四个随机数 1-13 J Q K 计算的内容是1
四个随机数字是打印在屏幕上的(可以重复)
2、用户输入算式,算式结果是24
3、由电脑计算算式的结果是否正确,如果正确,继续出4个数字,
根据上一步来的,每一步都会有新的算式,
4、用户退出, 输入q可以退出
或者发牌之前做用户询问,是否继续发牌.(y/n)
循环结构
找到循环变量,循环变量还需要初始化,判断出循环条件
可以用户确认发牌作为循环控制量,如果循环发牌变量为n,可以退出.
Char s=’y’;
While(s!=’n’){
}
用for循环
for(char s=’y’;s!=’n’;){
}
这两种方式的编程,必须把变量控制的逻辑理清楚,才能控制流程。
如果用char接收 nextChar,很可能会报错
遇到游戏类的编程,循环外层直接套一个死循环
(规定:游戏类退出一般都是主角生命值或者用户的某种操作决定,否则一直在游戏中)
While(true){
空间做任何游戏逻辑
String ch=Scanner.next();
If (ch.equals(“y”)){
}
}
这样节省存储空间
编写游戏类程序的思维:
- 确定基本架构(游戏的架构:死循环中套用一个退出条件)
- 确定全局变量
每个游戏类程序,都会有一个用户玩家名字, username全局
只要有交互的内容,Scanner ,直接把Scanner算作全局
- 实现逻辑
5 3 2 K
(5+2+K)*3
5 5 10 4
(+
合法性:只能通过正则判断
^[(,),1-10,J,Q,K][1-10,J,Q,K,+,-,*,/]$
无法统一
两个
^([1-10,J,Q,K][+,-,*,/][1-10,J,Q,K][),1-10,J,Q,K]$
只要算式中有括号,很难判断合法性
数学方法: 先算括号里面,再算括号外面
先找括号里面的找出来
字符串操作中,indexOf
计算括号里面的思维
根据流程(结合1+2+3+。。。。+100)的程序
目前来讲,程序记录
数字记录了,没有实现的累积运算
通过1-100的和特点,循环外设置变量累积和,这里在循环记录表达式结果的值
Int num1=0;
在循环里实现累加
前面加减乘除,num2为0限制住了
最后实现+9,
if (num2==0){
num1+=9;
}
这里逻辑漏洞:
2*10 20
2*10
2*1-à0 +9
2+9=11