2016-04-22 2 views
0

Код ниже работает так, как я хочу, чтобы он работал. Я просто хотел посмотреть, не использовал ли я необходимый объем памяти и не слишком много. Я хочу заниматься программированием в качестве своей карьеры, поэтому было бы неплохо услышать от некоторых из профессионалов.Могу ли я лучше использовать память в этой программе?

import java.util.*; 
public class GuessingGame { 
    public static void main(String[] args) { 
     int counter = 0, number, guess, yes = 1, no =2, answer; 

     Scanner input = new Scanner(System.in); 

     number = ((int) (Math.random() * 100)); 

     System.out.println("Would you like to play the guessing game?"); 
     System.out.println("Enter " + yes + " for yes, and enter " + no + " for no"); 
     answer = input.nextInt(); 

     if(answer == no) { 
      return; 
     } else { 
      while (answer == yes) { 
      System.out.println("Welcome to the guessing game"); 
      System.out.println("There has been a number between 1 and 100 picked \n You have five chances to guess the number"); 
      System.out.print("Please enter your guess >> "); 
      guess = input.nextInt(); 

      while (guess != number) { 
       if (guess != number) { 
        counter = ++counter; 
       } 
       if (counter == 5) { 
        System.out.println("You have used all your guesses"); 
        System.out.println("The number was " + number); 
        System.out.println("Would you like to play again?"); 
        System.out.println("Enter " + yes + " for yes and " + no + " for no"); 
        answer = input.nextInt(); 
        counter = -1; 
        if (answer == no) 
        return; 
       } else if (guess < number) { 
        System.out.println("You need to guess higher"); 
        System.out.println("You have used " + counter + " guess(es)"); 
        System.out.println("Please enter your new guess"); 
        guess = input.nextInt(); 
       } else if (guess > number) { 
        System.out.println("You need to guess lower"); 
        System.out.println("You have used " + counter + " guess(es)"); 
        System.out.println("Please enter your new guess"); 
        guess = input.nextInt(); 
       } 

      } 
      System.out.println("You win"); 
      System.out.println("Would you like to play again"); 
       System.out.println("Enter " + yes + " for yes and " + no + " for no"); 
       answer = input.nextInt(); 
       if(answer == no) 
        return; 
     } 
    } 
} 
} 

ответ

0

Я бы не стал беспокоиться об оптимизации памяти, если у вас нет памяти, профилированной вашим приложением, и она нашла проблему. Ваше время - деньги, и часто 1 ГБ памяти дешевле, чем час вашего времени, 1 МБ стоит несколько секунд, а 1 КБ не стоит того времени, когда нужно нажать одну клавишу, и вы даже не используете 1 КБ объектов.

В гораздо более крупной программе я предлагаю вам использовать jmc, чтобы профилировать ваше приложение и, в частности, смотреть на уровень распределения и думать о том, как его можно уменьшить.

Смежные вопросы