2015-09-15 2 views
2

Вот мой код, который принимает входное значение и сравнивает его со случайным значением. У меня есть 15 раз, чтобы запустить код для оценки и получить входное значение равным случайному значению, которое code solve ... Я хочу сделать счетчик, чтобы рассчитать, сколько раз я запускал код ... Я попытался установить count ++; в разных местах кода, но я не получил правильного ответа ... Где вы думаете, что count ++; надо поставить, чтобы получить количество трасс в выездных путах ... благодаряСчетчик для расчета количества прогонов в java

Вот мой код

package person; 

import java.util.Random; 
import java.util.Scanner; 

public class Cat { 

    public static void main(String[] args) { 

     int max = 100; 
     int min = 0; 
     int diff = max-min; 
     Random rn = new Random(); 
     int i = rn.nextInt(diff+1); 
     i+=min; 
     for (int k=0; k<15; k++){ 
      int count=0; 
      Scanner sb = new Scanner(System.in); 
      System.out.println("Enter your number"); 
      int x = sb.nextInt(); 
      if(x>i){ 
      System.out.println(x+"is bigger than i"); 
      } else if(x<i){ 
      System.out.println(x+"is smaller than i"); 
      } else if (x==i){ 
      System.out.println(x+"is equals to i "+" "+" no. of try"+count); 
      break; 
      } 
     } 
    } 
} 
+1

Вы должны сохранить значение count в файле, чтобы узнать, сколько раз вы запускаете код. –

+2

@ Mr.Robot Я не могу поверить, что вы просто сказали ему, что это совершенно неправильно! – QuakeCore

+0

Вы также должны перенести свой сканер из цикла, чтобы вы не создавали его на каждой итерации. –

ответ

4

Проблема с вашим подходом в том, что вы считаете было в петле, так что всегда будет сброшена. вы можете переместить его за пределы цикла или просто распечатать переменную цикла контура.

package person; 

import java.util.Random; 
import java.util.Scanner; 

public class Cat { 

    public static void main(String[] args) { 

     int max = 100; 
     int min = 0; 
     int diff = max-min; 
     Random rn = new Random(); 
     int i = rn.nextInt(diff+1); 
     i+=min; 
     int k; 
     for (k=0; k<15; k++) { 
      Scanner sb = new Scanner(System.in); 
      System.out.println("Enter your number"); 
      int x = sb.nextInt(); 
      if(x>i) { 
       System.out.println(x+"is bigger than i"); 
      } else if(x<i) { 
       System.out.println(x+"is smaller than i"); 
      } else if (x==i) { 
       System.out.println(x+"is equals to i "+" "+" no. of try"+k+1); 
       break;  
      } 
     } 
     if(sb !=null) { 
      sb.close(); 
     } 
    } 
} 
+0

спасибо .. когда я попробую 5 раз выход 4 ... Что делать, чтобы исправить выход? – java

+1

Поскольку вы используете K от 0 ... 15, вам нужно сделать k + 1 или вы можете работать от 1 ... 15 с условием цикла k <= 15. – StackFlowed

+1

спасибо .. Это работает .. Благословит вас Бог :) – java

0

Это потому, что вы устанавливаете count = 0 в свой цикл for. двигаться

int count = 0; 

выше для цикла и добавьте

count++; 

в начале для цикла. Если бы у вас было это в конце, вы не считали бы последний прогон, когда цикл может разразиться. Наличие в начале цикла означает, что вы определенно считаете каждый раз, когда начинаете процесс поиска случайно сгенерированного числа.

Но было бы лучше просто использовать счетчик взгляда k, чтобы отслеживать количество времени. Не нужно тратить лишнее пространство на другую переменную, когда у вас уже есть k, чтобы отслеживать все. Просто будьте осторожны, потому что k начинается с 0, поэтому убедитесь, что вы добавили 1 к числу запусков, если используете k.

+0

спасибо брат – java