A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

尚海朝

初级黑马

  • 黑马币:21

  • 帖子:6

  • 精华:0

© 尚海朝 初级黑马   /  2019-8-21 14:31  /  515 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老师让我们开始写技术贴,这不是在让我这个还是小白的人挠头嘛!既然那么美丽动人温柔大方气质满满的班主任说了就算我挠头也只能硬着头皮开始写了,因为刚刚接触JAVA所以只能把我平时学的一些代码打给大家了,希望大家理解一下我这个小白写的所谓的技术贴
下面这个是我在课堂上刚刚学会的一个关于账号,密码,和区别是人或者机器的验证码的代码,里面有我撸的代码和我自己的理解在里面,希望可以和大家多多交流一下学习心得,更希望有大佬能让我抱一下腿毛“因为大佬的大腿有点粗”哈哈,不多说了,下面就是代码:
//创建键盘录入和随机数的对象
import java.util.Random;
import java.util.Scanner;

public class denglu {
//程序开始时的main方法入口
    public static void main(String[] args) {
        denglu();random();
}
//编写登录的方法
    public static void denglu(){
//                因为登陆时有3次的限制次数所以我在此设置了3次的while循环
        int a = 4;
        while (a>1){
//                        创建键盘数据对象
            Scanner ss = new Scanner(System.in);
            System.out.println("请输入账号:");
//                        接受键盘数据对象
            String sc =ss.nextLine();
//                        在此我解释一下我因为英语不好,但是我拼音还是过关的所以在次我只能用拼//                        音给定义了,这是对账号的定义
            String zhanghao = "123";
            System.out.println("请输入密码:");
            String sd =ss.nextLine();
//                        这是对密码的定义
            String mima = "123";
//                        这句表示如果你输入的账号跟系统给的密码一致的话就进入if语句体
            if(sc.equals(zhanghao) && sd.equals(mima)){
                System.out.println("请输入验证码");
//                                创建随机数
                String random1 = random();
//                                输出验证码的随机数
                System.out.println("验证码:" + random1);
                String yanzheng = ss.nextLine();
//                                如果你输入的验证码跟产生的一致的话就登录成功啦
                if(yanzheng.equals(random1)){
                    System.out.println("登录成功");
                }

                break;
            }else {
                a--;
                System.out.println("账号或者密码错误");
                System.out.println("还剩" + (a-1) + "次");
                System.out.println("--------------");
                System.out.println("请重新输入账号密码:");
                if(a==1){
                    System.out.println("输入次数过多,请稍后再试");
                }
            }
        }

}
//这是验证码的方法
public static String random(){
//  创建一个可变的字符数组用来接收我们产生的随机数
        StringBuilder suiji = new StringBuilder();
        Random shu = new Random();
//                定义一个字符串类型的变量用于接受
        String sui ="";
//                用来决定小写字母的范围
        for (char zi = 'a'; zi <='z' ; zi ++) {
            suiji.append(zi);
        }
//                用来决定数字的范围
        for (char zi = '0'; zi < '9'; zi++) {
            suiji.append(zi);
        }
//      定义为四位数的验证码并对它遍历
        for (int i = 0; i < 4; i++) {
            int suiji2 = shu.nextInt(suiji.length());
            sui += suiji.charAt(suiji2);
        }
//                返回该变量类型下的值
        return  sui;
    }
}
还有下面我是在这几天总结的自己在编程时候遇到的一些BUG和BUG的出现原因跟解决办法希望大家能可以尽量的避免我这个小白整出来这些看起来超低端的BUG,关于为啥我会统计这些BUG,因为我刚开始的时候总是短短的几行代码会蹦出来比写的代码还多的BUG
现在说多了都是泪
1,java: 需要';'
解决办法:在提示的语句处添加“ ;”就可以了;
2,java: 无法从静态上下文中引用非静态 方法 max(double,double,double)   
出现原因:方法类型前面没添加static;
解决办法 在修饰符后面添加static关键字;
3,java: 缺少返回语句
出现原因:在方法定义内的语句体执行得出结果后没有返回;
解决办法:在语句体最后加上return这个关键字 + 要返回的值;
4,java: 有 'if', 但是没有 'else'
出现原因:
if语句嵌套
解决办法:
if 和 else 是同级的执行语句 该语句无法嵌套 所以把两者分开写就行;
5, java: 找不到符号
出现原因:
方法名称不一;
解决办法:
把方法名称改为一致就可以了;
6,java: 不兼容的类型: 意外的返回值
出现原因:
void方法是没有返回值的 如果想在语句体中编写return只能单独编写不能赋值   在void类型的方法中编写了return 并赋值;
解决办法:
把return后面的值去除或者return这句整句去除;
7, java: 无法访问的语句, 缺少返回语句
出现原因:
在有返回值的方法语句体中的返回值return后面加了语句;
解决办法:
return下面的语句删除;
8,java:ArrayIndexOutOfBoundsException 数组越界异常。
出现原因:
数字索引超出数组长度或者没有指向该数组
解决办法:
将错误的索引修改为正确的索引范围即可
9,java:NullPointerException 空指针异常。
出现原因:
数组地址没有指向正确
解决办法:
给数组一个真正的堆内存空间引用即可
10,IndexOutOfBoundsException:
出现原因:
集合索引越界
解决办法:
给一个正确的索引
由于在下的知识量实在是有些浅,现在我遇到的也只有这么一点BUG在此只能给大家分享这么一点我遇到的BUG。在此我也希望大家以后的BUG会越来越少,月薪越来越高。在下就先告辞了!

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马