2015-07-03 4 views
0

Как остановить цикл, когда нажата определенная клавиша. Я хочу создать средний калькулятор, в который вы вводите числа, и он даст вам среднее значение. Я сделал счетчик на сумму числа, которые вводятся. Однако мне нужно остановить этот счетчик, когда пользователь выполнил ввод всех необходимых им чисел.Loop до тех пор, пока не нажат ключ Java

+1

Можете ли вы разместить свой код? – Bun

+0

Используйте выражения ветвления: break, continue или return. Подробнее здесь: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html – Frankie

ответ

2

Вы всегда можете послушать KeyEvent в Java.

Это пример кода,

import java.awt.KeyEventDispatcher; 
import java.awt.KeyboardFocusManager; 
import java.awt.event.KeyEvent; 

public class IsKeyPressed { 
    private static boolean wPressed = false; 
    public static boolean isWPressed() { 
     synchronized (IsKeyPressed.class) { 
      return wPressed; 
     } 
    } 

    public static void main(String[] args) { 
     KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() { 

      @Override 
      public boolean dispatchKeyEvent(KeyEvent ke) { 
       synchronized (IsKeyPressed.class) { 
        switch (ke.getID()) { 
        case KeyEvent.KEY_PRESSED: 
         if (ke.getKeyCode() == KeyEvent.VK_W) { 
          wPressed = true; 
         } 
         break; 

        case KeyEvent.KEY_RELEASED: 
         if (ke.getKeyCode() == KeyEvent.VK_W) { 
          wPressed = false; 
         } 
         break; 
        } 
        return false; 
       } 
      } 
     }); 
    } 
} 

И в своем коде вы можете сделать это,

if (IsKeyPressed.isWPressed()) { 
    // do something 
} 

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

+0

Решена ли ваша проблема? Если да, пожалуйста, подумайте о принятии или голосовании за этот ответ. Мне потребовалось много времени, чтобы написать этот подробный ответ, чтобы помочь вам. –

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