Java 如何仅打印一次嵌套for循环的结果

Java 如何仅打印一次嵌套for循环的结果,java,arrays,loops,iteration,Java,Arrays,Loops,Iteration,我正在尝试创建一个自定义条形图,用户可以在其中输入他们想要用来创建每个条形图的条形图的数量、大小和符号 public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("How many bars would you like to display?"); int num_bars = scan.nextInt()

我正在尝试创建一个自定义条形图,用户可以在其中输入他们想要用来创建每个条形图的条形图的数量、大小和符号

public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);

        System.out.println("How many bars would you like to display?");
        int num_bars = scan.nextInt();

        int [] bars = new int[num_bars];
        String [] symbol = new String[num_bars];

        System.out.println("Specify the sizes of the bars: ");
        for(int i = 0; i < bars.length; i++) {
            bars[i] = scan.nextInt();
        }

        System.out.println("Specify the symbols to be used for the bars:");
        for(int i = 0; i < symbol.length; i++) {
            symbol[i] = scan.next();
        }

        int number = 1;
        for(int bar : bars) {
            System.out.print("\n" + number);
            for (String sym : symbol) {
                for (int size = 0; size < bar; size ++ ) {
                     System.out.print(sym +" "); 
            }
        System.out.println(" ");
        number++;
        }
        }   

    }
}

但我的目标是:

1 % % % % % % % %  
2 # # # #  

有人能帮我吗

不需要在符号[]数组上循环。它是多余的,因为您可以使用其索引打印每个条的符号

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);

    System.out.println("How many bars would you like to display?");
    int num_bars = scan.nextInt();

    int[] bars = new int[num_bars];
    String[] symbol = new String[num_bars];

    System.out.println("Specify the sizes of the bars: ");
    for (int i = 0; i < bars.length; i++) {
        bars[i] = scan.nextInt();
    }

    System.out.println("Specify the symbols to be used for the bars:");
    for (int i = 0; i < symbol.length; i++) {
        symbol[i] = scan.next();
    }

    int number = 1;
    for (int bar : bars) {
        System.out.print("\n" + number + " ");
        for (int size = 0; size < bar; size++) {
            System.out.print(symbol[number - 1] + " ");
        }
        System.out.println(" ");
        number++;
    }
}
publicstaticvoidmain(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“您希望显示多少条?”;
int num_bar=scan.nextInt();
int[]条=新的int[num_条];
字符串[]符号=新字符串[num_bar];
System.out.println(“指定条的大小:”);
对于(int i=0;i
您需要将代码更改为以下内容,因为您在下一个数字之前执行数字+,无需再次迭代符号数组,只需使用数字整数值即可。 请参阅以下资料:

       for (int bar : bars) {
        System.out.print("\n" + number);
        //for (String sym : symbol) {
            for (int size = 0; size < bar; size++) {
                System.out.print(symbol[number - 1] + " ");
        //              }
        //             System.out.println(" ");
        }
        number++;
    }
for(内部条形图:条形图){
系统输出打印(“\n”+编号);
//用于(字符串sym:symbol){
用于(int size=0;size
虽然这段代码可以解决这个问题,但如何以及为什么解决这个问题将真正有助于提高您的帖子质量,并可能导致更多的投票。请记住,你是在将来回答读者的问题,而不仅仅是现在提问的人。请编辑您的答案,添加解释,并说明适用的限制和假设。
       for (int bar : bars) {
        System.out.print("\n" + number);
        //for (String sym : symbol) {
            for (int size = 0; size < bar; size++) {
                System.out.print(symbol[number - 1] + " ");
        //              }
        //             System.out.println(" ");
        }
        number++;
    }