我的问题是使用嵌套for循环来创建此输出:
| | | | | |
123456789012345678901234567890123456789012345678901234567890
我无法找出用0替换int 10的最佳方法。我尝试了几种方法,但它们都是花哨的,对我来说似乎不对。我希望我的问题很明显,这很难解释。有人能指出我正确的方向吗?
我已经实现了正确的输出,但有些东西告诉我有更好的方法来解决这个问题。这是我的代码:
int k = 0;
for (int i=1; i<=6; i++){
System.out.print(" |");
}
System.out.println();
for (int m=0; m<6; m++){
for (int j=1; j<10; j++){
System.out.print(j);
}
System.out.print(k);
}
大! Modulo是我一直在寻找的答案。我对此感到更舒服:
for (int i=1;i<=6;i++){
System.out.print(" |");
}
System.out.println();
for (int m=0;m<6;m++){
for (int j=1;j<=10;j++){
System.out.print(j % 10);
}
}
答案 0 :(得分:11)
使用modulo operator %。它给你余下的。 因此,在1处开始循环,当1除以10时,余数 1 。 当2除以10时,余数为 2 等。当10除以10时,输出 0 。
for(int i = 1; i <= 10; i ++) {
System.out.println(i % 10);
}
答案 1 :(得分:10)
你想要mod运算符(%
)。
10 % 10 = 0
11 % 10 = 1
计算除法后的余数。
答案 2 :(得分:8)
为什么你不能生成这个:
012345678901234567890123456789012345678901234567890123456789
然后把角色从前面取下并贴在最后?
答案 3 :(得分:3)
有很多方法。最简单的可能是:
for (int i = 1; i <= 10; i++) {
System.out.println(i % 10);
}
如果你有2个循环,那么你可以使用这个事实:
for (int i = 0; i < 5; i++) {
for (int j = 1; j <= 9; j++) {
System.out.print(j);
}
System.out.print(0);
}
答案 4 :(得分:2)
如果这代表种模式,那么虽然不是简单地定义模式然后将结果输出到屏幕(或做任何你想做的事情),它是:
printPattern(" |", 6);
printPattern("1234567890", 6);
public void printPattern(string pattern, int max)
{
int i = 0;
while (++i <= max)
System.out.print(pattern);
System.out.println();
}
答案 5 :(得分:0)
您可以尝试使用modulo:
i = i % 10
答案 6 :(得分:0)
for (int i=1; i<100; i++)
System.out.println(i%10);
答案 7 :(得分:0)
这是一个非模数解决方案:
$x = 1;
while(1){
if($x>9){
$x=0;
}
print $x;
$x++;
}
是的,是的,我知道它很便宜。它会起作用。 ;)