#java #loops #printing #println
#java #циклы #печать #println
Вопрос:
Я использую Java 8, и мне нужно получить этот вывод:
XXXXX
XXXX
XXX
XX
X
где «X» — это строка.
Я написал простой код:
String s = new String ("X");
int j = 5;
for (int i = 0; i<5; i--)
{
System.out.println(s);
j--;
if (j < 1)
break;
Естественно, получите это:
X
X
X
X
X
Я понимаю, что мне нужно каким-то образом заставить Java повторить печать строки i раз (в цикле, который я назначил для i), но не знаю как (ни repeat, ни i не сработали). Каков наилучший способ сделать это? Спасибо!
Ответ №1:
Все, что вам нужно сделать, это:
final String s = "X";
for (int i = 5; i > 0; i--) {
for (int j = 0; j < i; j ) {
System.out.print(s);
}
System.out.println();
}
какие результаты:
XXXXX
XXXX
ХХХ
XX
X
Ответ №2:
Вы можете использовать рекурсивную операцию печати для достижения этой цели без циклов.
import java.util.Collections;
public class Test {
public static void main(final String[] args) {
recursiveTriangle(10);
}
public static void recursiveTriangle(final int length) {
if (length <= 0 ) {
return;
}
System.out.println(String.join("", Collections.nCopies(length, "X")));
recursiveTriangle(length-1);
}
}
Комментарии:
1. OP добавил тег
loops
, поэтому я полагаю, что они ищут решение на основе цикла.
Ответ №3:
Вы можете использовать while
цикл внутри for
String s = "X";
for (int i = 5; i > 0; i--) {
int j=0;
while(i>j )
System.out.print(s);
System.out.println();
}
Ответ №4:
concat вот еще один вариант:
String s = "";
for (int i = 5; i>0; i--) {
String s1 = "";
for (int j = i; j > 0; j--){
s1 = s.concat("X");
}
System.out.println(s1);
}