这一课学的确实是非常的头疼了,各种int i、int j,给本不富裕的脑细胞增加了超级多的压力。。。
跟着敲代码都有敲不对的时候,这个确实有点丢人。上课的时候老师用的是EditPlus,不过因为感觉后面就要换成Eclipse了,所以也就懒得下载了,一直用笔记本敲(弱弱的说一句居然macOS怎么新建笔记本我都百度了一下。。。)。之前就听说想要学好代码,需要数学特别好,真是这样的话,那我这个高考数学87的战五渣真的能学明白这个东西么。。。
感觉现在特别像上学的时候,上课听啥都能听懂,课上的例题也都能做出来或者听明白跟上思路,但是一到写作业的时候就开始抓耳挠腮。自己做课后练习题的之前,都需要把之前做过的题翻出来重新看一遍,再尝试着敲,敲不对了就再看看然后接着尝试着敲,这一课学的真的是效率特别的低,视频断断续续的看,老师说一句,我就得敲一下感受感受,估计后面能够好不少,能够想明白i和j这两对兄弟到底应该有多长。。。
程序流程控制:流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块,其流程控制方式采用结构化程序设计中规定的三种基本结构
一、顺序结构:程序从上到下,顺序执行,中间没有任何判断和跳转
二、分支结构:
1、根据条件,选择性的执行某段代码
2、有if-else和switch-case两种分支语句
1、if-else结构:条件判断结构,是可以嵌套使用的,不过实际开发中嵌套三层以上的情况很少见,因为逻辑太复杂,会丢情况,针对这种情况一定有更简单的方法。
1、第一种结构
2、第二种结构
3、第三种结构
4、if-else使用说明
1、条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
2、语句块只有一条执行语句时,一对{}可以省略,但建议保留
3、if-else语句结构,根据需要可以嵌套使用
4、当if-else结构是“多选一”时,如果不是一定要有一个结果,最后的else时可选的,根据需要可以省略
5、当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓
6、当多个条件是“包含”关系时,“小上大下/子上父下”
/*
【一道练习题】
假设你想开发一个玩彩票的游戏,程序随机的产生一个两位数的彩票,提示用户输入一个两位数,然后按照下面的规则判定用户是否能赢
1、如果用户输入的数字匹配彩票的实际顺序,奖金10000美元
2、如果用户输入的所有数字匹配彩票的所有数字,但顺序不一致,奖金3000美元
3、如果用户输入的一个数字仅能满足顺序情况下匹配彩票的一个数字,奖金1000美元
4、如果用户输入的一个数字仅能满足非顺序情况下匹配彩票的一个数字,奖金500美元
5、如果用户输入的数字没有匹配任何一个数字,则彩票作废
提示:使用(int)(Math.random() * 90 / 10)产生随机数
Math.random():[0,1) * 90 ---> [0,90] / 10 ---> [10,99]
*/
import java.util.Scanner;
class Caipiao{
public static void main(String[] args){
//1、随机产生一个两位数
//System.out.println(Math.random());//产生[0,1)
int number = (int)(Math.random() * 90 + 10);//得到[10,99],即[10,100)
//System.out.println(number);
int numberShi = number / 10;
int numberGe = number % 10;
//2、用户输入一个两位数
Scanner input = new Scanner(System.in);
System.out.print("请输入一个两位数:");
int guess = input.nextInt();
int guessShi = guess / 10;
int guessGe = guess % 10;
if(number == guess){
System.out.println("奖金10000美元");
}else if(numberShi == guessGe && numberGe == guessShi){
System.out.println("奖金3000美元");
}else if(numberShi == guessShi || numberGe == guessGe){
System.out.println("奖金1000美元");
}else if(numberShi == guessGe || numberGe == guessShi){
System.out.println("奖金500美元");
}else{
System.out.println("没中奖");
}
System.out.println("中奖号码是:" + number);
}
//如何获取一个随机数:[10,99],推导过程如下:
//double value = Math.random();//[0.0,1.0),解释:math类中,仅有一个random方法,对应的是double型,且取值范围是大于等于0.0,且「小于1.0」
//double value = Math.random() * 100;//[0.0,100.0)
//double value = Math.random() * 90;//[0.0,90.0)
//double value = Math.random() * 90 + 10;//[10.0,100.0)
int value = (int)(Math.random() * 90 + 10)//[10,99],用(int)强制类型转换,从double型转换为int型
//公式:[a,b]:(int)(Math.random() * (b - a + 1) + a)
System.out.println(value);
}
2、switch-case结构:
1、结构: