这是猜数游戏的部分代码,为什么会输入40显示大了,输入39显示小了

 Scanner in = new Scanner(System.in); 
         { for(int j = 1 ; j< 8; j++){ 
             System.out.println("请输入一个整数:"); 
           int value = in.nextInt();  
           int ran = (int)(Math.random()*100)+1; 
           if (value > ran){
            System.out.println("大了");
         } else if (value < ran){ 
            System.out.println("小了");
         } else if (value == ran){
            System.out.println("恭喜你猜对了!你的战斗力是"+j+"%");}
         }

下边这句代码提到for循环前边

     int ran = (int) (Math.random() * 100) + 1;

要不每次输入值的时候,这个值都是会重新变化的

不要放在for循环内部

猜的数字应该是固定的

 把随机生成数放到for循环外面,不然每循环一次都重新随机生成一个数

      Scanner in = new Scanner(System.in); 
      int ran = (int)(Math.random()*100)+1; 

     { for(int j = 1 ; j< 8; j++){ 
         System.out.println("请输入一个整数:"); 
       int value = in.nextInt();  

       if (value > ran){
        System.out.println("大了");
     } else if (value < ran){ 
        System.out.println("小了");
     } else if (value == ran){
        System.out.println("恭喜你猜对了!你的战斗力是"+j+"%");}
     }

你这样写 每次比较的随机数都是不一样的