黑马程序员技术交流社区

标题: 今天刚学String类,又可以玩个小游戏了 [打印本页]

作者: 窗外的雪儿飞    时间: 2015-9-6 22:50
标题: 今天刚学String类,又可以玩个小游戏了
import java.util.Scanner;

class Test {
public static void main(String[] args) {
  // * 需求:模拟登录,给三次机会,并提示还有几次。
  // * 用户名和密码都是admin
  for (int j = 0; j < 3; j++) {
   Scanner sc = new Scanner(System.in);
   System.out.println("请输入用户名:");
   String userName = sc.nextLine();
   System.out.println("请输入密码:");
   String pasword = sc.nextLine();

   if ("admin".equals(userName) && "admin".equals(pasword)) {
    System.out.println("登陆成功,欢迎" + userName + "来到猜数字游戏世界");
    if (true) {
     Game.playGame();
     break;
    }
   } else {
    if (j < 2) {
     System.out.println("您还有"+(2-j)+"次机会");
    }else {
     System.out.println("系统检测到您的账号存在账号多次登陆失败存在被盗安全隐患,账号已经被锁定!");
    }
   }
  }

}
}

class Game {
public static void playGame() {
  int Num = (int)(Math.random()*100) + 1;
  /*
   * 0-50(50)大  25-50(25)小   25-35(35)大
   */
  int star = 0;
  int end = 100;
  while(true){
   Scanner sc = new Scanner(System.in);
   System.out.println("请输入一个数字:"+star+"-"+end);
   int guessNum = sc.nextInt();
   if(Num > guessNum) {
    System.out.println("您猜的数字"+guessNum+"小了");
    star = guessNum;
   }else if (Num < guessNum) {
    System.out.println("您猜的数字"+guessNum+"大了");
    end = guessNum;
   }else {
    System.out.println("恭喜你猜中了!!");
    break;
   }
  }
}
}



作者: 寰宇天侠    时间: 2015-9-6 23:00
String是引用类型,但是形参不能改变,为什么呢
作者: 窗外的雪儿飞    时间: 2015-9-7 22:35
寰宇天侠 发表于 2015-9-6 23:00
String是引用类型,但是形参不能改变,为什么呢

String一旦初始化就不能被改变,是指值不变。存在于方法区常量池中,new 出来的字符串有两个地址,一个在常量池一个在堆内存中。
作者: 笑笑精灵    时间: 2015-9-7 22:41
猜数小游戏,顶
作者: 寰宇天侠    时间: 2015-9-8 00:01
原来如此




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