在java中打印出一系列数字

时间:2012-06-06 22:29:18

标签: java for-loop

大家好,我只是为自己做一些阅读,学习java并遇到了这个问题,目前卡住了。

我需要根据用户提供的输入打印出一系列数字。 例如,如果input = 5,则输出应如下

@ 1 @ 22 @ 333 @ 4444 @ 55555

    import java.util.*;

public class ex5{
        public static void main(String[] args){
                Scanner kb = new Scanner(System.in);
                System.out.println("Please type a #: ");

                int input = kb.nextInt();

                for(int i=0;i<input;i++){
                        if(input==1){
                                System.out.print("@1");
                        }
                        if(input==2){
                                System.out.print("@1@22");
                        }
                }

        }
}

这似乎不起作用,因为这是我得到的输出

请输入#: 2 @ 1 @ 22 @ 1 @ 22

我现在还不确定要在for循环中放什么,我不认为我在这里使用for循环要么......

任何帮助人员?

6 个答案:

答案 0 :(得分:2)

你需要一个嵌套的for循环来解决这个问题。

答案 1 :(得分:2)

是的,这不是你想要的方式。你将要在for循环中构建字符串。

以新字符串开头

String s = "";

循环时,添加到该字符串。

for(int i=1;i<=input;i++){
     s += @;
     for(int j=0; j<i; j++) {
         s+=i;
     }
 }

答案 2 :(得分:2)

    for (int i=1; i<=5; i++){
        System.out.print("@");
        for (int j=1; j<=i; j++) System.out.print(i);
    }

@1@22@333@4444@55555

答案 3 :(得分:1)

您需要使用嵌套的for循环。

public static void main(String[] args) {
    Scanner kb = new Scanner(System.in);
    System.out.println("Please type a #: ");

    int input = kb.nextInt();

    for (int i = 1; i <= input; i++) {
        System.out.print("@");
        for (int k = 0; k < i; k++) {
            System.out.print(i);
        }
    }
}

答案 4 :(得分:1)

这是因为您正在检查if语句中的数字1和2。硬编码只检查这两个数字,一旦超过你有一个if语句

的值就行不通

你想要做的是输出你的迭代器的值(在你的情况下,我)i次(提示,你可以在大循环中使用另一个循环)然后在字符串的末尾加上@符号

我会尽量不给你任何代码,这样你就可以自己学习,但可以随意提出更多问题。

答案 5 :(得分:0)

您正在尝试打印给定的号码 - 给定次数? 然后你需要两个循环 - 外部循环用于迭代数字和内部 - 用于迭代 - 给定数字。

这将是这样的:

for(int i = 0; i < input; ++i) {
    System.out.print("@");
    for(int j = 0; j < i; ++j) {
        System.out.print(i);
    }
}