2016-06-29 2 views
-2

Когда я пытаюсь запустить программу, она спрашивает меня о моем вводе, а затем просто говорит «работает» без вывода, пока я его не закрою. Я не вижу никаких проблем с кодом, и я запускал эту точную программу раньше на другом компьютере (мой домашний компьютер намного превосходит вычислительную мощность на ПК, на котором он работал) - это ошибка Netbeans?Java-программа принимает входные данные, но не выводит

int ticket [] = new int [6];  
    for (int i = 0; i < 6; i++) 
    { 
     ticket [i] = Integer.parseInt(JOptionPane.showInputDialog("Input a number:")); 
    } 
    int balls[] = new int [7]; 
    for (int i = 0; i < balls.length; i++) 
    { 
     boolean keepLooking = true; 
     int b = (int)(Math.random()*6 + 1); 
     while(keepLooking) 
     { 
      keepLooking = false; 
      for (int j = 0; j < balls.length; j++) 
      { 
       if (balls [j] == b) 
       { 
        keepLooking = true; 
       } 
      } 
     } 
     balls [i] = b; 
    } 
    int bonus = balls[6]; 
    int matching = 0; 
    boolean bonusMatch = false; 
    for (int i = 0; i < 6; i++) 
    { 
     for (int j = 0; j < 7; j++) 
     { 
      if (ticket[i] == balls[j]) 
      { 
       matching = matching +1; 
      } 
     } 
     if (ticket[i] == balls[6]) 
     { 
      bonusMatch = true; 
     } 
    } 
    System.out.println("The winning balls are: "); 
    for (int i = 0; i < 6; i++) 
    { 
     System.out.print(" " +balls[i]); 
    } 
    System.out.println(" And the bonus ball is " +balls[6]); 
    int Payout = 0; 
    if (matching == 3) 
    { 
     System.out.println("Your payout was: R57"); 
    } 
    else if (matching == 4) 
    { 
     System.out.println("Your payout was: R1033"); 
    } 
    else if (matching == 5) 
    { 
     if (bonusMatch = true) 
     { 
      System.out.println("Your payout was: R2300000"); 
     } 
     else 
     { 
      System.out.println("Your payout was: R55491"); 
     } 
    } 
    else if (matching == 6) 
    { 
     System.out.println("Your payout was: R14000000"); 
    } 
} 
+0

Я не вижу 'println' с« бегом »в любом месте фрагмента кода. Вы уверены, что это тот же самый код, который вы описываете? –

+0

Можете ли вы опубликовать весь код? где ваша основная функция? как вы видите «бегущий» вывод, если такого вывода нет. –

+0

То же самое здесь, кстати, вы также можете попытаться поставить пару брекетов, чтобы увидеть, где программа застряла ... – Hooch

ответ

0

int b = (int)(Math.random()*6 + 1);

если b в два раза то же самое (это случайно, это может произойти и произойдет), то есть бесконечный цикл (keepLooking = true, так как вы нашли b в вашем столе, и вы итерацию без изменения что-нибудь). все, что вы пытаетесь достичь (честно говоря, ваш код не имеет смысла, создавайте методы со значимыми именами, избегайте сложных циклов, краткий рефакторинг), ошибка на вас, а не Netbeans.

+0

Спасибо, я посмотрю, чтобы улучшить его. Код для ИТ-теста, который мы написали, я делаю это, когда ревизия экзамена – Bastiaan

+0

привыкает к пошаговому отладчику. вот как вы можете легко обнаружить такие ошибки. И всегда предполагайте, что вы ошибаетесь, прежде чем обвинять инструмент, 99,99% времени, когда это будет так;) – WeirdBob

0

, пожалуйста, используйте «если» цикл вместо «а» цикла вы получите выход, как то, что и хотят !! т.е. в то время как (keepLooking) использовать вместо если (keepLooking)

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