Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 生成特定输出的嵌套循环_Java_Loops_For Loop_Nested Loops - Fatal编程技术网

Java 生成特定输出的嵌套循环

Java 生成特定输出的嵌套循环,java,loops,for-loop,nested-loops,Java,Loops,For Loop,Nested Loops,我刚刚开始学习java,正在尝试生成以下输出: $££$$$££££$$$$$ $£$$$£$$$ 我目前的尝试如下: for (i = 1; i < 3; i++) { System.out.print("$£"); for (j = 1; j < i + 2; ++j) { System.out.print("$"); 更新了下面的代码 char temp = '$'; for (int i = 1; i < 6; i++) {

我刚刚开始学习java,正在尝试生成以下输出:

$££$$$££££$$$$$
$£$$$£$$$
我目前的尝试如下:

for (i = 1; i < 3; i++) {
    System.out.print("$£");
    for (j = 1; j < i + 2; ++j) {
        System.out.print("$");

更新了下面的代码

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 = '$';
    }
}
chartemp='$';
对于(int i=1;i<6;i++){
对于(int j=0;j
试试这个,我已经更新了你的代码。如果有什么不清楚的地方,请随时询问

输出:

$英镑$$英镑$$$$$


您应该将其视为“人类将如何做”,然后尝试在代码中使用相同的方法

那么人类应该做什么:

  • 写入1x$
  • 写2x
  • 写3x$
  • 写4x
因此,模式是明确的。你对人类说什么?遵循这种方法,每次增加打印的相同字符数,并每次切换

现在让我们用代码来做吧

让howMuchTimes=5;
常量字符=“$”;
常量字符=';
让actualChar=charA;
让输出=“”;
对于(设i=0;i控制台日志(输出)当您希望轻松更改字符和/或它们出现的次数时,可以执行以下操作:

    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);
        }
    }

您可以将要打印的字符放入一个数组中,当您在该数组上循环时,可以使用索引和余数运算符在字符之间切换。 然后,您只需要有一个嵌套循环,该循环将打印字符重复当前索引的次数

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中有许多方法可以重复字符串,因此如果您使用Java 8,您可以使用:

爪哇8
简单Java代码 或者您可以使用循环创建自己的repeat方法,您的代码可以是:

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();
}

@Socowi我的错误(错误点击)。固定的。谢谢。我很难想象如何使用嵌套循环来实现这一点。只需一个循环即可轻松完成。您不需要嵌套循环,您需要检查当前循环索引是否为偶数(
i%2==0
),如果是,请打印英镑符号*i,否则,请打印美元符号*i。谢谢!很容易跟在你后面!非常感谢。为什么不使用
temp=temp=='$'?'£':'$';
final String[] characters = {"£", "$"};
for (int i = 1; i <= 5; i++)
    System.out.print(characters[i % characters.length].repeat(i));
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, "$")));
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();
}
$££$$$££££$$$$$