嵌套For循环打印数字11223344556677889900

时间:2014-05-03 18:10:45

标签: java loops for-loop

我正在尝试使用嵌套for循环打印数字序列11223344556677889900。我不确定打印序列的算法,因为它以00结束。我有以下方法代码,但我打印00作为文字,并确信必须有更好的方法。非常感谢任何帮助。

public static void drawNumbers(){
    for (int line = 1; line <= 2; line++) {
        for (int i =1; i <= 9; i++) {
            for (int j =1; j<=2; j++) {
                System.out.print(i);
            }
        }   
        System.out.print("00");
    }
}

5 个答案:

答案 0 :(得分:1)

你可以运行&#34; i&#34;循环到10并打印i%10。当值达到10时,这将打印0。

答案 1 :(得分:1)

将循环运行到10而不是:

System.out.print(i);

做的:

System.out.print(i % 10);

public static void drawNumbers(){
    for (int line = 1; line <= 2; line++){
        for (int i =1; i <= 10; i++){
            for (int j =1; j<=2; j++){
                System.out.print(i%10);
            }
        }
    }
}

答案 2 :(得分:0)

另一种方法是在for中插入一个if语句,你将检查i的值是否等于&#34; 10&#34;,如果是,它将打印值&#34 ; 00&#34;

答案 3 :(得分:0)

稍微改变逻辑以符合您的要求

public static void drawNumbers() {
    for (int line = 1; line <= 1; line++) {
        for (int i =1; i <= 10; i++) {
            for (int j =1; j<=2; j++) {
                if(i==10) {
                    System.out.print(0);        
                } else {
                    System.out.print(i);
                }
            }
        }
    }
 }

只使用一个循环就像

一样运行
public static void drawNumbers() {
    for(int i = 1 ;i <= 10; i++) {
        if(i ==10) {
            System.out.print(0 + "" + 0);   
        } else {
            System.out.print(i + "" + i);
        }
    }
}

答案 4 :(得分:0)

只打印i

的最后一位数字
for (int i = 1; i <= 10; i++) {
    String s = String.valueOf(i);
    int lastDigit = s.length() - 1; // last digit position in string
    System.out.print(s.substring(lastDigit, lastDigit + 1)); // print last digit
    System.out.print(s.substring(lastDigit, lastDigit + 1)); // print last digit
}

输出:

11223344556677889900