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

这个猜数游戏中怎么将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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?