javase_code第1个大作业---串联知识点:Scanner、Random、while循环、if判断、String类的equals、for循环

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
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值