2010-11-14 2 views
0

Это на Java, как указывает тег. Я не могу понять, как заставить его распечатать «ключевую» строку в конце кода, сохраняя мои переменные так, как они есть. Я действительно работал со статическим основным, и я понятия не имею, что это делает для программ, поскольку я - полный новичок. Может ли кто-нибудь указать мне в правильном направлении? Я хотел бы знать, что вы все думаете!Что нужно, чтобы исправить это, чтобы напечатать строку случайных символов?

import java.util.Random; 

class Key { 

    private String key = new String(); 
    private void main(String[] args) { 
     Random r = new Random(); 

     for (int i = 10; i > 0; i--) { 
      int randomNumber = r.nextInt(10) + 48; 
      int randomLetter = r.nextInt(26) + 97; 
      int branchSwitch = r.nextInt(2); 

      if (branchSwitch == 1) { 
       // System.out.print((char)randomNumber); 
       key = key + (char) randomNumber; 
      } else 
       key = key + (char) randomLetter; 
      // System.out.print((char)randomLetter); 
     } 
     System.out.print(key); 
    } 
} 
+0

Что произойдет, если вы используете 'println' вместо 'print'? (Может быть, что-то буферизует вывод?) – cdhowie

ответ

4

Во-первых, основной должен быть public static, если вы хотите запустить его в качестве приложения. Таким образом, вы можете установить программу следующим образом (обратите внимание, что исходный main переименован в generateAndPrint, потому что вы не можете иметь два метода с той же подписью в одном классе):

class Key { 
    private String key = new String(); 
    private void generateAndPrint() { 
     Random r = new Random(); 

     for (int i = 10; i > 0; i--) { 
      int randomNumber = r.nextInt(10) + 48; 
      int randomLetter = r.nextInt(26) + 97; 
      int branchSwitch = r.nextInt(2); 

      if (branchSwitch == 1) { 
       // System.out.print((char)randomNumber); 
       key = key + (char) randomNumber; 
      } else 
       key = key + (char) randomLetter; 
      // System.out.print((char)randomLetter); 
     } 
     System.out.print(key); 
    } 

    public static void main(String[] args) { 
     Key key = new Key(); 
     key.generateAndPrint(); 
    } 
} 
1

Я не могу понять, почему ваш main является частным (и не статическим).

Однако, здесь есть test-run of your program at ideone.com. Кажется, все работает нормально.

изменения я сделал:

  • Сделано главное-публичный метод статического
  • Сделано переменной статичной.
+0

Вы должны упомянуть, что вы изменили приложение до его работы. –

+0

правый. Я изменил его на общедоступную статическую. – aioobe

+0

Причина, по которой главная является частной, состоит в том, что я понятия не имею, что я делаю. Можете ли вы указать мне на то, что объясняет основную и статическую жизнь в условиях простой жизни? – Breedly

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