黑马程序员技术交流社区

标题: 关于栈溢出的问题 [打印本页]

作者: 晓染霜林    时间: 2014-9-21 17:15
标题: 关于栈溢出的问题
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,求解

作者: SenGoo    时间: 2014-10-19 14:36
||只要一个条件为true,之后的条件就不再判断!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2