Для запуска этого кода, как предполагалось, используйте ваш cmd/terminal, а не IDE. (или вы не увидите правильного эффекта от \ r)Сложность печати на принтере
Когда 9 в терминале достигнут самого правого положения после 4-х пространств, он развернется и переместит 4 пространства и снова и снова. Однако, когда он достигает начальной точки после полного цикла, на втором пробеле остается 9, которые не очищаются с помощью \ r. Что может быть причиной этого?
public class Core {
public static void main(String[] args) throws InterruptedException {
int Array[][] = new int[4][6];
int score;
boolean enemy = true;
boolean dir = true;
// EnemyLine
while (enemy) {
for (int i = 1;;) {
Thread.sleep(1000);
if (i == 1)
dir = true;
else if (i == 4)
dir = false;
if (dir == true) {
int a = Array[0][i] = 9;
System.out.printf("%" + i + "d", a);
i++;
System.out.print("\r");
continue;
} else if (dir == false) {
int a = Array[0][i] = 9;
System.out.printf("%" + i + "d", a);
i--;
System.out.print(" \r");
continue;
}
}
}
}
}
Я не вижу здесь вопроса или проблемы (помимо проблемы с домашней работой). Запустите его в отладчике/IDE и посмотрите все переменные и окно вывода, чтобы выяснить, что происходит. Или просто сделайте это на бумаге (или в голове, это не слишком сложно). – KevinDTimm
Ну, проблема в том, что на возврате leg \ r не очищает каждые 9. Я не могу найти, что вызывает это, и я пишу в eclipse и не могу найти ошибку. (в любом случае код не работает так, как предполагалось в eclipse, поскольку по какой-то причине он перескакивает строку, но в терминале все выходные данные происходят в одной строке) – heathbm
Пара несвязанных комментариев по вашему коду: У вас есть 'if (dir == true) {...} else if (dir == false) {...} 'Ну, так как _dir_ является логическим, он может _only_ быть истинным или ложным, поэтому ваш if..else может быть' if (dir == true) {. ..} else/* dir должно быть false */{...} ' Кроме того, не проверяйте, является ли' some_boolean == true' просто test 'some_boolean':' if (dir) {...} else { ...} Это сбивает с толку, так как «dir» (направление?) Не говорит вам много чего: что означает 'dir == true'? Если это означает «перемещение вправо», а false означает «перемещение влево», переименуйте 'dir' в' movingRight' ... 'if (movingRight) {...} else {/ * move left * /}' –