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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package cn.itcast.chapter11;

import java.util.Scanner;

public class UserNameTest {
        public static void main(String[] args) {
                Scanner sc = new Scanner(System.in);
                System.out.println("请设置用户名:");
                String name = sc.nextLine();
                System.out.println("请设置密码:");
                String password = sc.nextLine();
                for (int i = 0; i < 3; i++) {
                        System.out.println("请输入用户名:");
                        String name1 = sc.nextLine();
                        System.out.println("请输入密码:");
                        String password1 = sc.nextLine();
                        if (name.equals(name1) && password.equals(password1)) {
                                System.out.println("登陆成功");
                                NumberTest.number();
                                break;
                        }
                        if (i == 2) {
                                System.out.println("账号已锁定,请找我解密码~");
                                break;
                        }
                        System.out.println("输入错误,你还有" + (2 - i) + "次机会");
                }
        }
}
-------------------------------------------------------------------------------------------------------------
package cn.itcast.chapter11;

import java.util.Random;
import java.util.Scanner;

public class NumberTest {
        public static void number() {
                ScannerTest.scanner();
                // 产生一个1-100之间的随机数
                // int number = (int)(Math.random()*100)+1;
                Random rd = new Random();
                int number = rd.nextInt(100);// //////////////////////////////////////////////怎么用?
                while (true) {
                        // 键盘录入一个数据
                        Scanner sc = new Scanner(System.in);
                        System.out.println("请输入一个数据(1-100):");
                        int guessNumber = sc.nextInt();
                        // 把两个数据进行比较
                        if (guessNumber > number) {
                                System.out.println("你猜的数据" + guessNumber + "大了");
                        } else if (guessNumber < number) {
                                System.out.println("你猜的数据" + guessNumber + "小了");
                        } else {
                                System.out.println("恭喜你,猜中了。到田野处领奖品");
                                break;
                        }
                }
        }
}
-------------------------------------------------------------------------------------------------------------
package cn.itcast.chapter11;

import java.util.Scanner;

public class ScannerTest {
        public static void scanner() {
                Scanner sc = new Scanner(System.in);
                System.out.println("开始?是或者否:");
                String st = sc.nextLine();
                if (st.equals("是")) {
                        for (int i = 3; i >= 0; i--) {
                                for (long j = 0; j < 610000000; j++) {
                                }

                                System.out.println("游戏载入中-" + i + "-");
                        }
                } else if (st.equals("否")) {
                        System.out.println("退出?是或者否:");
                        String st1 = sc.nextLine();
                        if (st1.equals("是")) {
                                System.exit(1);
                        } else if (st1.equals("否")) {
                                System.out.println("已返回游戏界面");
                                scanner();
                        } else {
                                System.out.println("请按规矩来,重新输入");
                                scanner();
                        }
                } else {
                        System.out.println("请按规矩来,重新输入");
                        // ScannerTest sct=new ScannerTest();
                        scanner();
                }
        }
}

评分

参与人数 1黑马币 +1 收起 理由
lcrobert + 1 很给力!

查看全部评分

6 个回复

倒序浏览
zhangkai986745 发表于 2015-5-27 00:28
好长有代码,看了一下,没有看明白

没写完注释 有一些不太好的地方 不过也能玩了 我也是刷一下HMB了:lol
回复 使用道具 举报
楼主继续加油吧!
回复 使用道具 举报
建议从现在开始养写代码的习惯
回复 使用道具 举报

建议从现在开始养写注释的习惯。。。。。。。。。
回复 使用道具 举报
代码好乱啊
回复 使用道具 举报
本帖最后由 曲终烟尽 于 2015-5-27 21:53 编辑

ScannerTest 这个类里的功能我建议改成一个 while 大循环,当条件达成就break,跳出循环,条件不达成就回到while开头重新提示用户,而不是再三种情况都重新调用 scanner()函数,虽然说这是静态的函数,但我还是觉得不该这样,因为如果用户一直重复不选是,你就一直重复调用scanner(),而重新调用是有个上限次数的,原来了解过这些,你这个方法算是 递归baike.baidu.com/view/96473.htm,【递归占用内存空间大,效率还低,递归的次数越多,占用的内存空间会逐渐增加,当达到堆栈空间放不下时就会溢出。能用循环解决的就不用递归】
我原来在python里使用这种方式达到一定次数就出错了。java里应该也是有这样的问题。
有个经典的题是 汉诺塔,使用的就是重复调用自身函数实现的,在C语言里似乎没问题,不过比起来你这个功能我觉得还是用while靠谱。。。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马