1、学长01の学习建议:↓
-
Java是个体系。不只是学Java,还有数据库。
- 先知其然再知其所以然。
- 如果不理解一个点,先把这个点放一放,后面重点再来看。
- 每学完一个阶段,要做一个大作业。
-
要把知识串起来。(PS:下一个,想做五子棋!!)
比如,学完数组后,做个五子棋。→ 是没有界面的,是在控制台上的。就打印出来。
通过特殊字符来代替棋盘。sop输出,组合起来就是棋盘。通过打印就可以了
先不管什么设计模式,什么面向对象、封装的概念。
- 要把知识点串起来。知识点是散装的,要通过大作业串起来。
-------------------谢谢你ありがとう----------------------
2、收到小白aka茶仙°的javase_code大作业初体验!AOA
2.1Step01:实现菜单的输出显示
-
★★★Step01用到の知识点:
-
1、通过Scanner输出菜单
- 2、输出语句,打印“菜单”、“1.注册”、“2.登录”、“3.抽奖”、“4.退出”
搜索 → Java菜单(菜单条、菜单和菜单项)_慧心的眼眸的博客-CSDN博客_java菜单
在那篇文章还看到其他的知识点,都没学过,还以为能继续下去,哈哈天真(think:也许以后能吧?)
break 0813 10:37
------------------------------------------------
小白 14:43:25
JMune别用
小白 14:43:35
你用System.out.println
小白 14:43:56
你用JMenu要涉及到JavaGUI
小白 14:44:24
我那表白程序教学里用的就是JavaGUI
通过小白君的解释,发现:我把问题整复杂了emmm。
-
★★★Step01注意事项:功能需要啥就写啥,多的不能写,理解清楚需求是第一位!不要把问题整复杂!
-
step01の完整代码展示 ↓ 。
import javax.swing.*;
import java.util.Random;
import java.util.Scanner;
/*
任务
1、模拟注册登录幸运抽奖全过程
2、主要功能
3、注册登录幸运抽奖
阶段1:练习——实现菜单的输出显示
需求说明
1、输出菜单
2、选择菜单编号,输出菜单信息
3、如果编号选择错误,输出“您的输入有误!”
思路:
1、如果要输出,需要用到Scanner
2、怎么做到选择?→ 搜索看看 → Java菜单(菜单条、菜单和菜单项)_慧心的眼眸的博客-CSDN博客_java菜单
(★★@茶仙:先不用JMenu,直接输出)
2.1怎么通过Scanner令人输入菜单呢? →用数组列表?
2.2那么,这是要使用Random生成随机数吗?
2.3生成了0~100范围内的随机数后,需要啥---
2.3.1选择菜单编号,输出菜单信息。这句话aka只能选1个数?
2.3.2
3、需要输出语句,那么怎么表示选择错误?---要判断吗?
★★★break 20210813 15:28 @茶仙---这一阶段只需练习输出。
*/
public class Step01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
/*
* @author Jerrycjazz
* @create 2021-08-13-10:37
//add(JMenu m);
System.out.println("请输入菜单:");//先不用JMenu,直接输出
int ArrayList = sc.nextInt();//用数组列表?那么括号里该填数字吗?
// 没填 → 23 53 13 34 46 70 aka能够输出数组
Random r = new Random(); //2.2要使用Random生成随机数吗?那么括号里又填不填呢?→应该要填,参数代表了范围
int num = r.nextInt(101); //那么想填0~100范围的咋写?→注意:左闭右开区间。
*/
/**
* @author 茶仙°
* @create 2021-08-13-14:51
*/
System.out.println(" 菜单");
System.out.println("");
System.out.println(" 1.注册");
System.out.println( " 2.登录");
System.out.println(" 3.抽奖");
System.out.println(" 4.退出");
System.out.println(" ");
System.out.print(" >");
}
}
2.2Step02:实现循环执行功能。
-
★★★Step02用到的知识点:
- 1、Scanner进行键盘输入
- 2、输出语句,询问用户“是否继续”
- 3、while循环:(在写while循环时定义个名字 w)
- 3.1 需要if判断:判断是否继续,如果是yes则选择菜单,如果no则结束循环,如果输入有误则提示输入有误。if("yes".equals(a)){//PS:得到了新知识---equals:是用来判断的,给String类用的。
- 3.2 else if,用户选择no,结束循环(break w;)
- 3.3 else 输出("输入有误,请重新输入(yes / no)");
-
★★★Step02注意事项(if条件写不对):
- 不能在if里面定义或对变量赋值。
- 只能在if里面执行判断。
- 比如 写成 if(a == 1)。
2.1如果用户选择继续,这句话怎么用if表示?应该用while→Java中使用Scanner类进行键盘的输入详解
break 0813 16:10
back 0813 18:48
你这需要判断,如果用户不输入"继续"呢。from 小白君。
break 0813 19:31
群友说(将之前一步里的boolean)改成==true。
经过群友提醒:a是int,不能赋给Boolean,QAQ改来改去都没注意到啊!
注意:==是比较,=是赋值!报错时要先去看错误的行数,找到对应的错误,提高调错能力!
aka没把之前的知识点串联起来。dbq毕向东老师&高淇老师!
break 19:45
break 19:59
- 不能在if里面定义或对变量赋值。
- 只能在if里面执行判断。
- 比如 写成 if(a == 1)。
break 20210813-22:19
Step02完整の代码 (注释掉了自己写错的,加上了茶仙的)↓:
import com.sun.deploy.security.SelectableSecurityManager;
import java.util.Scanner;
/*
阶段2:练习——实现循环执行功能
需求说明
1、系统询问用户是否继续。
2、如果用户选择继续,则可以继续选择菜单,否则程序结束,退出系统。
思路:
1、需要Scanner进行键盘输入
2、需要判断if
2.0该怎么实现---在键盘输入"继续",直接用输出?
2.1如果用户选择继续,这句话怎么用if表示?应该用while →https://www.cnblogs.com/liuzengzhi/p/11765704.html
2.1.1还是应该用if判断,aka如果用户不输入"继续"呢。
↑(回到了原点) 2.1.2如果用户选择继续,这句话怎么用if表示?
2.1.3 需要变量。
2.1.4 那么怎么在if括号内写条件?
*/
public class Step02 {
/*
* @author Jerrycjazz
* @create 2021-08-13-19:49
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(" 请问您是否继续?");
int a = sc.nextInt();//2.1.3 需要变量。
//while(sc.hasNextLine()){//2.1如果用户选择继续,这句话怎么表示?应该用while
// System.out.println("请继续选择菜单: " + sc.nextLine()); }
boolean userPrint;
if(userPrint = true){
System.out.println("请您选择菜单:");//编译通过了,但是并没有在屏幕上显示"请您选择菜单"就结束了
}else//else要写在这大括号后面!
return;
}
*/
/**
* @author 茶仙°
* @create 2021-08-13-22:01
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println(" 请问您是否继续(yes / no)?");//添加了提示,便于用户输入
w:while(true){// 循环叫:w
String a = sc.next();//
//判断是否继续,如果是yes则选择菜单,如果no则结束循环,如果输入有误则提示输入有误
if("yes".equals(a)){//PS:得到了新知识---equals:是用来判断的,给String类用的
System.out.println("请您选择菜单,请输入(yes / no):");
}else if("no".equals(a)){
break w;// 结束名为:w 的循环(PS:对对对,break后面加个w更行啊)
}else{
System.out.println("输入有误,请重新输入(yes / no)");
}
}
}
}
2.3Step03:实现注册功能。
-
★★★Step03用到の知识点:
- 1、需要Scanner、Random。
- 2、产生4位随机数的Random怎么写?for循环。
- 3、创建用户资料储存
- 4、把用户登录的信息储存起来
-
★★★Step03注意事项:
- 1、2.1.1让产生的随机数连起来,咋写?
- aka生成4个0~9之间的随机整数,添加到集合,并遍历集合。
- from 茶仙°:当有人注册的时候那肯定会有地方储存他的注册信息,我们只考虑一个人,就一个, 那么可定不是用数组集合之类的,来储存他的信息,而是用变量。
- 2、2.2注册标识该怎么表示? from 茶仙°:暂时不用考虑。
茶仙的输入不了字符串,对此进行修改:
小白 2021/8/14 21:30:02
你这卡号改成String?
为什么?
S**y 2021/8/14 21:30:31
那我搞错了?
dbq(↓ 改好了)
Step03 自己写の代码(修改后,并没有全对) ↓ :
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
/*
阶段3:练习——实现注册功能
o需求说明
1、输入用户名和密码,系统产生4位随机数作为卡号。
2、注册成功,显示注册信息并修改注册标识为true。
思路:
1、需要Scanner、Random。
1.1产生4位随机数的Random怎么写?for循环。
2、再次使用Scanner,
2.1显示注册信息要怎么写?用输出语句。
2.1.1让产生的随机数连起来,咋写?
aka生成4个0~9之间的随机整数,添加到集合,并遍历集合。
思路:
1、需要存储4个数字,创建一个集合,<Integer>
2、产生随机数,需要用到Random
3、用循环4次,来产生4个随机数字,for循环。
4、循环内调用r.nextInt(int n),参数是9,0~10.
5、把数字添加到集合中,add。
6、遍历集合:for、size、get。
2.1.2注册成功,显示注册信息时,怎么在括号内表示产生的4个随机数密码?
//System.out.println("用户名:"+str +"密码为:"+ passWorldVip);
from 茶仙°:当有人注册的时候那肯定会有地方储存他的注册信息,我们只考虑一个人,就一个,
那么可定不是用数组集合之类的,来储存他的信息,而是用变量。
2.2注册标识该怎么表示? from 茶仙°:暂时不用考虑。
2.3 System.out.println("您的卡号是:"+sc);//卡号没写对,输出的是地址值。
*/
public class Step03My {
/**
* @author Jerrycjazz
* @create 2021-08-14-15:32
*/
public static void main(String[] args) {
System.out.println("请您输入用户名和密码:");
Scanner sc = new Scanner(System.in);
//System.out.println("请您输入密码:");
String str = sc.next();//ps:对Scanner字符串的输入还没熟悉
String str2 = sc.next();//用户名和密码都应该设置为字符串类型。不要int num = sc.nextInt();
/*
Random r = new Random();
for (int i = 0; i < 4; i++) {
int num2 = r.nextInt(10);//左闭右开区间,要取的是0~9
//System.out.print("您的卡号是:" + num2);//您的卡号是:7您的卡号是:7您的卡号是:1您的卡号是:3
ArrayList<Integer> list = new ArrayList<>();
Random r = new Random();
for (int i = 0; i < 4; i++) {
int num = r.nextInt(10);
list.add(num);
}
//遍历集合。
for (int i = 0; i < list.size(); i++) {
System.out.print("您的卡号是:"+ list.get(i));//2.1.1让产生的随机数连起来,咋写?
}
*/
Random r = new Random();
System.out.println("您的卡号是:"+sc);//卡号没写对,输出的是地址值。
int passWorldVip = r.nextInt(9999 - 1000 + 1)+1000;//要给产生的随机数组起名。
System.out.println();
System.out.println("注册成功,您的注册信息为:");
System.out.println("用户名:"+str +"密码为:"+ passWorldVip);// 2.1.2怎么在括号内表示产生的4个随机数密码?
//System.out.println("用户名:"+str +"密码为:"+ r);//java.util.Random@12a3a380
}
}