小丨陈同学 2019-03-27 22:53 采纳率: 40%
浏览 480
已采纳

这个猜数游戏中怎么将for循环的语句换成while循环语句


```import java.util.Random;
import java.util.Scanner;
public class Chenwei_Guessnumebr{
static int w = 8;
    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Random ran = new Random();
        int num = ran.nextInt(100)+1;   
        for(;;){                    
            System.out.println("1.开始猜数");
            System.out.println("2.游戏参数设置");
            System.out.println("9.退出");
            Scanner sc=new Scanner(System.in);      
            String choo =sc.next();
            if (!choo.equals("1")&&!choo.equals("2")&&!choo.equals("9")){       //if条件语句 三种条件,限制情况.
                System.out.println("非法数据");
            }
            else 
            {
                if (choo.equals("1"))
                {
                    int t = 1;                  
                    for (t=1;t<w;t=t+1)             
                    {           
                        System.out.println("请输入你想猜测的数字");
                        Scanner scs=new Scanner(System.in);     
                        int n = scs.nextInt();  
                        if (n>num)
                        {
                            System.out.println("猜的数字大了.");
                        }
                        else if (n<num)
                        {
                            System.out.println("猜的数字小了.");
                        }
                        else{
                            System.out.println("恭喜你猜对了,你的战斗力是x%" );       //  ☆“缺一个计算战斗力的式子”
                            break;
                        }
                    }
                        if(t > w)           //t(猜测次数)超过了w(设置的总次数)
                        {           
                            System.out.println("超过次数,尚需努力");
                            break;
                        }
                        else
                        {
                            break;
                        }
                    }
                }
                 if(choo.equals("2")){          
                    System.out.println("请选择难度:");
                    System.out.println("1.简单");
                    System.out.println("2.一般");
                    System.out.println("3.困难");
                    Scanner scs = new Scanner(System.in);
                    int u = scs.nextInt();
                    if (u==1)
                    {
                        w=8;        //次数为8(简单)
                    }
                    else if (u==2)
                    {
                        w=6;        //次数为6(一般)
                    }
                    else
                    {
                        w=4;        //次数为4(困难)
                    }
                }
                else
                {
                    break;
                    }
            }
        }
    }

同时缺少一个计算战斗力的式子
就是在答对的时候
“恭喜你猜对了,你的战斗力是x%"(x=1-n/8,n是猜中时的次数-1)
  • 写回答

2条回答

  • threenewbee 2019-03-27 23:36
    关注

    for(;;)
    修改为
    while(true)即可

    System.out.println("恭喜你猜对了,你的战斗力是x%" );

    ->
    System.out.println("恭喜你猜对了,你的战斗力是" + 1- (t - 1) / (float)8+ "%" );

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常
  • ¥15 关于风控系统,如何去选择
  • ¥15 这款软件是什么?需要能满足我的需求
  • ¥15 SpringSecurityOauth2登陆前后request不一致
  • ¥15 禅道二次开发编辑版本,上传不了发行包