JavaSE篇(第一周)
随便说点,首先,经过一周的学习,我好像能敲一些简单的代码了。例如这周的作业,如下:
/*
*模拟双色球彩票开奖和购买兑换
* 规则:红色球(1-33)之间选择6个不重复
* 蓝色球(1-16)之间选择1个
*/
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class RedBlueBall {
public static void main(String[] args) throws InterruptedException {
Scanner sc = new Scanner(System.in);
//6 choices of red ball
int[] corb = new int[6];
System.out.println("提示:红色球号范围为1-33;蓝色球号范围为1-16");
for (int i = 0; i < corb.length; i++) {
//输入猜测的六个红色球号
System.out.println("请输入第"+(i+1)+"个红球号码");
corb[i] = sc.nextInt();
for (int j = 0; j < i; j++) {
if (corb[i] == corb[j]){
System.out.println("重复输入,请确认后再次输入");
i--;
}
}
if (corb[i]>33 || corb[i]<0){
System.out.println("超出范围,重新输入。");
i--;
}
}
//得到的红蓝色球号码
Arrays.sort(corb);
System.out.println("经确认您输入的六个红色球号码为:");
for (int i:corb){
System.out.print(i+"\t");
}
System.out.println();
System.out.println("请输入1个蓝色球号码");
int cobb = sc.nextInt();
while (cobb>16){
System.out.println("输入错误,请重新输入一个1-16的数字");
cobb = sc.nextInt();
}
System.out.println("您输入的蓝色球号码为:"+cobb);
Random rd = new Random();
//生成一个数组装6个号码
int[] red = new int[6];
for (int i=0;i<red.length;i++) {
//生成[1,33]之间的随机数
red[i] = rd.nextInt(34) + 1;
//去重复
for (int j=0;j<i;j++){//j表示已经生成的元素索引,i表示当前生成的最新的元素索引
if (red[i] == red[j]){//如果重复
i--;//重新生成
}
}
}
//排序
Arrays.sort(red);
System.out.println("红色组六个球的号码是:");
for (int i:red){
//延迟1s
Thread.sleep(1000);
System.out.print(i+"\t");
}
System.out.println();
System.out.println("蓝色组的球号码是");
int blue = rd.nextInt(16)+1;
System.out.println(blue);
int rnum = 0;
for (int i = 0; i < corb.length; i++) {
for (int j = 0; j < i; j++) {
if (corb[i]==red[j]){
rnum+=1;
}
}
}
switch (rnum){
case 6:
if (cobb==blue){
System.out.println("恭喜您,您中了一等奖");
}else {
System.out.println("恭喜您,您中了二等奖");
}
break;
case 5:
if (cobb==blue){
System.out.println("恭喜您,您中了三等奖");
}else {
System.out.println("恭喜您,您中了四等奖");
}
break;
case 4:
if (cobb==blue){
System.out.println("恭喜您,您中了四等奖");
}else {
System.out.println("恭喜您,您中了五等奖");
}
break;
case 3:
if (cobb==blue){
System.out.println("恭喜您,您中了五等奖");
}
break;
case 2:
case 1:
case 0:
if (cobb==blue){
System.out.println("恭喜您,您中了六等奖");
}
break;
default:
{
System.out.println("感谢参与,您的每一次彩票购买都会有1分钱用于福利事业");
}
}
}
}
懂的人应该看出来了哈,这是个有关双色球的作业。怎么说呢?运气不太行,写完后自己在那儿傻傻的试了很多次,最高也就六等奖,让我不得吐槽买彩票就图一乐,只能给福利事业捐钱罢了。
写这玩意儿,能很好的将我第一周学的内容进行运用起来,就比如吧:
- 运算符,好像只有相对简单些的赋值、算术、自增自减、条件运算符等的应用,没用到逻辑运算符。这样一看好像确实这玩意儿写着逻辑上不难哈。
- switch 语句,我只想说别忘了break
- if 语句,我只想说哪儿都有这玩意儿,循环里有它,循环完了还有它!条件判断语句yyds。
- for 循环 这周写吐了,而纵观全文,又不下于5个for循环,不仅 for循环还 for 循环嵌套,对于这玩意儿注意一下for循环的条件就好了。初学时有点费脑筋,后面呢用几次了也就好了,所以学习java还得多敲啊
- do while 有没有啊,额好吧,这个作业里好像没看到,但是有while
- Thread.sleep(1000); 这个语句,md还要改一下main方法那里,网上搜了如何休眠,这方法是有,就是好像没注意到哪里有说需要在public static void main(String[] args){}添加个 throws InterruptedException,不然还用不了,报错!浪费了我输入好几次的时间,Ctrl+鼠标左键点进去了也看不懂,啥时候能这样点进去一个方法能看得懂的话是不是level又高了一点啊哈哈,噢不对,好像也怪自己,alt+Enter后没用提示的方法,靠 !。
- 数组 这里面运用了数组滴知识,例如排序的方法哈:Arrays.sort(数组名)。 有了这玩意儿,再也不用像之前傻傻的采用冒泡排序的思想然后利用循环一个个比较后排序出来,人家直接就升序排序(由低到高)了。再就是定义数组,格式为 定义类型 [ ] 数组名 = new 类型 [ ]
- 其他反正就是写基础知识了,懒得写了。