<少女> 2022-12-03 19:54 采纳率: 90.9%
浏览 30
已结题

求解注释里面的问题,详解必采纳

package chapter34;
import java.util.Scanner;
public class index {
    //存储用户名和密码
    public  static String arr1[]=new String[3];//这一句是什么意思啊?new String[3]是什么意思?
    public  static String arr2[]=new String[3];
    static int index=0;
    public static void main(String[] args) {
        //设置登录的默认账号和密码
        arr1[0] = "heima";
        arr2[0] = "123456";
        //循环选择功能
        while (true) {
            print();
            Scanner scanner = new Scanner(System.in);
            System.out.println("请选择功能:");
            String str = scanner.next();
            if (str.equals("1")) {
                login();
            } else if (str.equals("2")) {
                register();
            } else if (str.equals("3")) {
                show();
            } else if (str.equals("0")) {
                System.exit(0);//强制退出
            } else {
                System.out.println("请正确选择功能");
            }
        }
    }
    public static void print(){
        System.out.println("-----------黑马管理系统--------------");
        System.out.println("1.登录功能(login)");
        System.out.println("2.注册功能(register)");
        System.out.println("3.查看(show)");
        System.out.println("0.退出(exit)");
        System.out.println("-----------黑马管理系统--------------");
    }
    //这里选择了功能1之后,就跳转到这里
        public static void login(){
        //这里进行循环干嘛?
        for (int i=0;i<3;i++){
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入用户名:");
            String str1=scanner.next();
            System.out.println("请输入密码:");
            String str2=scanner.next();
            //这里的循环是什么?
          for(int i1=0;i1<arr2.length;i1++){
              if (str1.equals(arr1[i1]) && str2.equals(arr2[i1])){
                  System.out.println("登录成功");
                  return;
              }
          }
          System.out.println("登录失败,请重新登录!");

        }
    }
    public static void register(){
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入用户名:");
            String str1=scanner.next();
            Scanner scanner1=new Scanner(System.in);
            System.out.println("请输入密码:");
            String str2=scanner1.next();
            boolean flag=true;
            for(int i=0;i<arr1.length;i++){
                if(str1.equals(arr1[i])){
                    System.out.println("用户名已存在");
                    flag=false;
                }
            }
            if (flag=true){
                for(int i=0;i<arr1.length;i++){
                    if (str1.equals(arr1[i])){
                        System.out.println("用户名已存在");
                        flag=false;
                    }
                }
                if (flag==true){
                    index++;
                    if(index<arr1.length){
                        arr1[index]=str1;
                        arr2[index]=str2;
                        System.out.println("注册成功");
                    }else {
                        add();
                        arr1[index]=str1;
                        arr2[index]=str2;
                        System.out.println("注册成功");
                    }
                }
            }

    }
    public static void add(){
        String newarry1[]=new String[arr1.length+3];
        String newarry2[]=new String[arr1.length+3];
        System.arraycopy(arr1,0,newarry1,0,arr1.length);
        System.arraycopy(arr2,0,newarry2,0,arr1.length);
        arr1=newarry1;
        arr2=newarry2;
        show();
    }

    public static void show(){
        for(int i=0;i<arr1.length;i++){
            if(arr1[i]!=null){
                System.out.println("用户名:"+arr1[i]+","+"密码:"+arr2[i]+"\n");
            }
        }
    }

}


求解注释里面的问题,详解必采纳

  • 写回答

3条回答 默认 最新

  • 龙猫爱抓鱼 2022-12-03 20:19
    关注

    首先明确第一点,也就是你的第一个注释问题,arr1和arr2代表了两个长度为3的数组,分别用来存储用户名和密码;你注释的第二个问题,也就是第一个for循环,意思是提示用户输入用户名密码(这里的循环意思是有三次输入机会),注释的第三个问题,也就是第二个内层for循环,是遍历数组arr2(密码数组),比对用户输入的密码是否正确,如果正确提示登录成功,否则提示用户登录失败,请重新登录。希望对您有所帮助,有用的话采纳一下哈

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月11日
  • 已采纳回答 12月3日
  • 创建了问题 12月3日

悬赏问题

  • ¥20 c语言写的8051单片机存储器mt29的模块程序
  • ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小
  • ¥50 java算法,给定试题的难度数量(简单,普通,困难),和试题类型数量(单选,多选,判断),以及题库中各种类型的题有多少道,求能否随机抽题。
  • ¥50 rk3588板端推理
  • ¥250 opencv怎么去掉 数字0中间的斜杠。
  • ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
  • ¥250 paddleocr带斜线的0很容易识别成9
  • ¥15 电子档案元素采集(tiff及PDF扫描图片)
  • ¥15 flink-sql-connector-rabbitmq使用
  • ¥15 zynq7015,PCIE读写延时偏大