我刚刚开始学习Java,并试图产生以下输出:
$££$$$££££$$$$$
我目前的尝试如下:
for (i = 1; i < 3; i++) {
System.out.print("$£");
for (j = 1; j < i + 2; ++j) {
System.out.print("$");
我曾经在Python上有过一定的经验,但是我一直在努力地探索使用Java的嵌套循环的语法。我收到以下输出:
$£$$$£$$$
答案 0 :(得分:2)
在下面更新了您的代码。
char temp = '$';
for (int i = 1; i < 6; i++) {
for (int j = 0; j < i; ++j) {
System.out.print(temp);
}
if (temp == '$') {
temp = '£';
}
else {
temp = '$';
}
}
尝试一下,我已经更新了您的代码。随时询问是否有不清楚的地方。
输出:
$£$$$$£££$$$$$
答案 1 :(得分:1)
您应该将其视为“人类将如何做到”,然后尝试在代码中使用相同的方法。
那人类会做什么:
因此模式很清楚。你对人类说什么?嘿,请遵循这种方法,每次增加相同字符的打印数量,并每次都进行切换。
现在就可以在代码中完成
let howMuchTimes = 5;
const charA = '$';
const charB = '£';
let actualChar = charA;
let output = '';
for (let i=0; i < howMuchTimes; i++){
for (let j=0; j < i+1; j++) {
output += actualChar;
}
if (actualChar === charA) {
actualChar = charB;
} else {
actualChar = charA;
}
}
console.log(output);
(它在javascript中,因此您可以在此处执行它,但是在Java中此代码没有太大区别)
答案 2 :(得分:1)
当您想轻松更改字符和/或出现次数时,可以执行以下操作:
char odd = '$';
char even = '£';
int amount = 6;
for (int i = 1; i <= amount; i++) {
for (int j = 0; j < i; j++) {
System.out.print(i % 2 == 0 ? even : odd);
}
}
输出:
$££$$$££££$$$$$££££££
答案 3 :(得分:1)
您可以将要打印的字符放在一个数组中,并在其上循环时,可以结合使用索引和余数运算符在字符之间进行切换。 然后,您只需要有一个嵌套循环,该循环将重复打印字符重复当前索引的次数。
final String[] characters = {"£", "$"};
for (int i = 1; i <= 5; i++)
for (int j = 0; j < i; j++)
System.out.print(characters[i % characters.length]);
在Java 11中,您甚至可以放弃嵌套循环,并用String#repeat(int)
替换它来重复字符串:
final String[] characters = {"£", "$"};
for (int i = 1; i <= 5; i++)
System.out.print(characters[i % characters.length].repeat(i));
答案 4 :(得分:1)
您可以使用一个循环,仅当您知道用Java重复字符串的方式很多时,因此,如果您使用的是Java 8,则可以使用:
int i = 1;
for (i = 1; i < 4; i+=2) {
System.out.print(String.join("", Collections.nCopies(i, "$")));
System.out.print(String.join("", Collections.nCopies(i + 1, "£")));
}
System.out.print(String.join("", Collections.nCopies(i, "$")));
如果您使用的是Java 11,则可以使用String::repeat
:
int i = 1;
for (i = 1; i < 4; i+=2) {
System.out.print("$".repeat(i));
System.out.print("£".repeat(i + 1));
}
System.out.print("$".repeat(i));
或者您可以使用循环创建自己的重复方法,您的代码可以是:
public static void main(String[] args) {
int i = 1;
for (i = 1; i < 4; i+=2) {
System.out.print(repeatString("$", i));
System.out.print(repeatString("£", i));
}
System.out.print(repeatString("$", i));
}
public static String repeatString(String s, int nbr) {
StringBuilder result = new StringBuilder("");
for (int i = 0; i < nbr; i++) {
result.append(s);
}
return result.toString();
}
输入
$££$$$££££$$$$$