黑马程序员技术交流社区

标题: 猜数子小游戏请问如何控制次数 [打印本页]

作者: ab8846254    时间: 2017-4-4 15:15
标题: 猜数子小游戏请问如何控制次数
我写了一个猜字数小游戏 程序无措但是 控制不了次数 定义6次 到了1次的时候在跳就是0次 在就是-1次了无法跳出或者结束
[Java] 纯文本查看 复制代码
/*
        猜数字小游戏(数据在1-100之间)
       
        分析:
                A:程序产生一个随机数。(被猜的)
                B:键盘录入数据。(你猜的)
                C:把你猜的和被猜的进行比较
                        a:大了
                        b:小了
                        c:猜中了
                D:给出多次猜的机会,猜中就结束。
                        while()循环,猜中就break
*/
import java.util.Scanner;
public class GuessNumberDemo {
        public static void main(String[]args){
                //让程序产生一个随机数。(被猜的)数据在1-100之间
                int number =(int)(Math.random()*100)+1;
                int jihui=6;
               
                while(true){
                        jihui--;
                                //System.out.println("你总共只有"+jihui+"次");
                        System.out.println("你还剩余"+jihui+"次机会");
                        
                        //键盘录入数据。(你猜的)数据在1-100之间
                        Scanner sc=new Scanner(System.in);
                        System.out.println("请你输入你要猜的数字");
                        int guessNumber=sc.nextInt();
                        if(guessNumber>number){
                               
                                System.out.println("你输入的数字"+guessNumber+"大了请再次输入");                               
                        }else if(guessNumber<number){
                                System.out.println("你输入的数字"+guessNumber+"小了请再次输入");
                        }else if(jihui<1){
                                System.out.println("你没机会了");
                                break;
                        }else{
                        System.out.println("恭喜你输入正确");
                        break;
                }
        }
}
}

作者: 一亩九分地    时间: 2017-4-4 15:41
减减放if里面吧

作者: ab8846254    时间: 2017-4-4 16:14
一亩九分地 发表于 2017-4-4 15:41
减减放if里面吧

放if里就一直提示还有6次机会不会相减的 你可以试试
作者: 撒拉黑    时间: 2017-4-4 21:21
意思放哪里?

作者: 好丽友    时间: 2017-4-4 22:46
import java.util.Random;import java.util.Scanner;public class Class01 {        public static void main(String[] args) {                Random r = new Random();                Scanner sc = new Scanner(System.in);                System.out.println("请你猜一个数:");                int num = r.nextInt(100) + 1;                int count = 6;                while (true) {                        int s = sc.nextInt();                        if(count <= 1){                                System.out.println("你沒有機會了");                                break;                        }                        if (s == num) {                                System.out.println("猜中了");                                break;                        } else if (s > num) {                                System.out.println("猜大了,你還有 "+ --count +"次機會");                        } else {                                System.out.println("猜小了,你還有"+ --count + "次機會");                        }                }        }}

作者: 泪桥    时间: 2017-4-4 23:18
感觉好乱呀
作者: ab8846254    时间: 2017-4-5 08:57
泪桥 发表于 2017-4-4 23:18
感觉好乱呀

帮忙解决下
作者: Damonlalala    时间: 2017-4-10 01:56
else if(jihui<1){
                System.out.println("你没机会了");
                break;
            }
把这一句去掉else 单独写个if就行了,不然这个else if 会一直执行不到
作者: 风笑    时间: 2017-4-10 12:39
不要使用死循环,将while()里的true改为条件,外面定义变量int i = 0;里面改为猜的次数,猜中时return结束程序,没猜中到次数不走循环,在下面System.out.println("次数用完");




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