黑马程序员技术交流社区
标题:
请教一个关于输出的问题
[打印本页]
作者:
涂金哲
时间:
2012-6-9 10:53
标题:
请教一个关于输出的问题
import java.math.*;
public class MathTest { public static void main(String[] args) {
double y;
int m;
for(y=1;y>=-1;y-=0.1){
m= (int) (Math.acos(y)*10); System.out.println(m);
for(int x=1;x<m-1;x++)
System.out.print(" ");
System.out.print("*");
for(int z=0;z<31-m;z++) //如果将循环条件改为(int z=0;z<62-m;z++) 输出改为一个空格?? System.out.print(" ");//此处有两个空格 System.out.println("*");
}
}
}
问题:如果for(int z=0;z<31-m;z++)改为注释的内容 (int z=0;z<62-m;z++),程序右侧的*图形是排成一列为什么会这样?
作者:
赵兵锋
时间:
2012-6-9 11:23
for (y = 1; y >= -1; y -= 0.1) {
m = (int) (Math.acos(y) * 10);
System.out.println(m);
for (int x = 1; x < m - 1; x++)
System.out.print(" ");//这里循环次数为m-2次
System.out.print("*");
for (int z = 0; z < 62 - m; z++)
System.out.print(" ");//这里循环次数为62-m次
System.out.println("*");
}
复制代码
第二处for里改为1个空格时:每行的输出:(m-2)个空格+*+(62-m)个空格+*,在行尾的*之前会有m-2+62-m=60个空格,其中加上一个星号,,所以行尾的星号竖着看是一列,它们都是本行的第62个字符
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2