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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

晓染霜林

初级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 晓染霜林 初级黑马   /  2014-9-21 17:15  /  1086 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class JudgeRadnumber {
        public String input() {
                String radNumber = ((int) (Math.random() * 8000 + 1000)) + "";
                System.out.println("随机数 1:" + radNumber);
                return radNumber;
        }
        /**
         * 判断随机数中有没重复的数字
         * @return
         */
        public String judgeRadnumber() {
                JudgeRadnumber  j = new JudgeRadnumber();
                String radNumber = input();
                int n = 1;
                int str[] = new int[4];
                int par = Integer.parseInt(radNumber);
                for (int i = 0; i <= 3; i++){
                        str[i] = Integer.parseInt((radNumber.substring(i, i + 1)));
                }
                while (str[0]==str[1]||str[0]==str[2]||str[0]==str[3]||str[1]==str[3]||str[1]==str[2]||str[3]==str[2]) {
                                System.out.println(str[0]==str[1]||str[0]==str[2]||str[0]==str[3]||str[1]==str[3]||str[1]==str[2]||str[3]==str[2]);
                j.judgeRadnumber();               
                }
               
                return radNumber;
        }
}
这段代码运行时有时会报栈溢出的问题,原因是判断条件的错误,即使生成的四位数中每一位数字的值都不一样(即数组中的的每个数字不一样),判断条件也会为true,求解

1 个回复

倒序浏览
||只要一个条件为true,之后的条件就不再判断!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马