每个for循环都会在新行上打印,即使不应

时间:2019-09-10 22:32:17

标签: java

我正在尝试为Minecraft创建一个3个字母的名称生成器,并且我正计划与不存在的朋友共享这个名称。

package bored;
import java.util.Random;
public class Yay {

    public static void main(String[] args) {
        String[] arr={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_"};
        int i;
        int f;
        for (f=0; f<10; f++) {
            for (i=0; i<3; i++) {
                Random r=new Random();
                int randomNumber=r.nextInt(arr.length);
                System.out.print(arr[randomNumber]);
            System.out.println("");
            }
        }
    }
}

它应该打印类似“ 3ab”,“ 9dl”的内容 但是它会打印

3

a

b

9

d

l

4 个答案:

答案 0 :(得分:2)

您当前正在内部for循环中调用换行打印语句。您可以从这里更改代码

for (f=0; f<10; f++) {
    for (i=0; i<3; i++) {
        Random r=new Random();
        int randomNumber=r.nextInt(arr.length);
        System.out.print(arr[randomNumber]);
    System.out.println("");
    }
}

对此

for (f=0; f<10; f++) {
    for (i=0; i<3; i++) {
        Random r=new Random();
        int randomNumber=r.nextInt(arr.length);
        System.out.print(arr[randomNumber]);
    }
    System.out.println();
}

答案 1 :(得分:2)

您需要将System.out.println("");移到内部for-loop之外。

我也不会在for循环之外初始化fi变量,因为您只需要在它们内部:

public static void main(String[] args) {
    String[] arr={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_"};

    for (int f=0; f<10; f++) {
        for (int i=0; i<3; i++) {
            Random r=new Random();
            int randomNumber=r.nextInt(arr.length);
            System.out.print(arr[randomNumber]);
        }
        System.out.println("");
    }
}

答案 2 :(得分:0)

问题是您正在最里面的for循环内调用System.out.println("")。根据您的预期输出和缩进,我怀疑您打算写:

import java.util.Random;

public class Yay {

    public static void main(String[] args) {
        String[] arr={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_"};

        for (int f=0; f<10; f++) {
            for (int i=0; i<3; i++) {
                Random r=new Random();
                int randomNumber=r.nextInt(arr.length);
                System.out.print(arr[randomNumber]);
            }
            System.out.println(); // Outside of the for loop
        }
    }
}

答案 3 :(得分:0)

您必须移动`System.out.println(“”);在内部for循环之外。

import java.util.Random;
public class Main {

    public static void main(String[] args) {
        String[] arr={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_"};
        int i;
        int f;
        for (f=0; f<10; f++) {
            for (i=0; i<3; i++) {
                Random r=new Random();
                int randomNumber=r.nextInt(arr.length);
                System.out.print(arr[randomNumber]);

            }
            System.out.println("");
        }
    }
}