概述
1 目录及资源索引
Java4Android自学过程目录及资源索引
2 题目及练习
题目:在命令行当中打印出如下图形
*
* *
* * *
* * * *
按照老师讲解的步骤一步一步来操作:
- 定义一个类,名字随意;
- 在类当中定义一个主函数;
- 使用 for 循环 打印4行,每行一个 “*”
- 把一个 星号 看做一个 (星号 + 空格);
- 打印4行,第一行一个,第二行2个,第三行3个,以此类推
- 在打印 “* ” 之前要先打印空格,第一行3个,第二行2个,以此类推。即一共n行,第一行 n-1 个,第二行 n-2 个。
- 需要注意一点,原来用的打印,是 println ,是换行打印,用在此处可能要出问题。可以用 print ,就好了。
第一次尝试,代码如下:
class TestTriangle
{
public static void main(String args[])
{
for(int i = 0; i < 4; i++) // 行数
{
for(int j = 0; j < 4; j++) // 列
{
System.out.print("* "); // 打印 *
}
System.out.print("");
}
}
}
运行结果如下,发现有点不太对,要的是4行,每行4个星号,但是我这个全打印到一行上边了,观察一下代码,发现在行数那个 for 循环中,忘记换行了。
又对代码做了部分修改调整,调整后的代码如下:
class TestTriangle
{
public static void main(String args[])
{
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
System.out.print("* ");
}
System.out.print("n"); // 此处增加每一行结束后的换行
}
}
}
运行结果如下:
现在距离我们想要的结果还是有一点点距离,我们再进一步的调整代码:
class TestTriangle
{
public static void main(String args[])
{
for(int i = 1; i <= 4; i++)
{
for(int j = 0; j < i; j++) // 修改列数,第一行小于1,依次类推
{
System.out.print("* ");
}
System.out.print("n");
}
}
}
运行结果如下:
有点接近,但是还不是我们想要的,再来观察一下这个跟最终想要的结果之间的联系,第一行,1个星号,但是开头有3个空格;第二行有2个星号,开头有2个空格;第三行有3个星号,开头有1个空格;第四行有4个星号,开头有0个空格。有没有发现一点规律,一共4行,第一行1个星号,3个空格;一共4行,第二行2个星号,2个空格;一共4行,第三行3个星号,1个空格;一共4行,第四行4个星号,0个空格。 规律是不是很明显了?下边再次修改代码:
class TestTriangle
{
public static void main(String args[])
{
for(int i = 1; i <= 4; i++)
{
for(int j = 0; j < (4 - i); j++) // 打印每行开始的空格,个数为总行数减星号个数。
{
System.out.print(" ");
}
for(int j = 0; j < i; j++) // 打印星号,和上边的空格在同一行
{
System.out.print("* ");
}
System.out.print("n"); // 一行结束后,再换行
}
}
}
运行结果如下,此次终于成功了,哈哈哈哈
3 扩展题目
自己根据上述特殊形状,想到了打印出一个菱形出来,其实就是上边那三行,在对称下来,自己测试的代码如下:
class TestTriangle
{
public static void main(String args[])
{
for(int i = 1; i <= 4; i++) // 菱形上半部分 for 循环
{
for(int j = 0; j < (4 - i); j++) // 每一行前的空格
{
System.out.print(" ");
}
for(int j = 0; j < i; j++) // 打印出每一行的星号
{
System.out.print("* ");
}
System.out.print("n"); // 每一行结束,要换行
}
for(int i = 1; i <= (4 - 1); i++) // 菱形下半部分 for 循环,注意最长那行不算
{
for(int j = 0; j < i; j++)
{
System.out.print(" "); // 每一行前边的空格,和上半部分刚好相反
}
for(int j = 0; j < 4 - i; j++)
{
System.out.print("* "); // 每一行的星号
}
System.out.print("n"); // 每一行结束后,进行换行
}
}
}
程序运行结果如下:
哈哈,虽然成功了,但是程序优化空间还是很大的。继续努力。
4 课后作业
老师在这节课结束时,留了课后作业,题目如下:
1、如果要求大家编写一个程序,可以打印出任意行的与本题类似的图形,应该怎么做?
2、优化上一个求素数的程序代码。(这个暂时还没想好,我自己的程序已经做了部分优化)
5 总结
- 学会了打印特殊图案的步骤;
- 进一步熟悉了 for 循环的使用方法;
- 还需要更加熟练,在对一些代码思路上,理解还不是很到位,有的时候就是考虑不到。看来还要多写才行;
- 这样一步一步测试,一步一步调试出想要的结果,感觉很好,继续努力~
最后
以上就是仁爱小笼包为你收集整理的Java4Android自学记录(8-3):练习课 - 打印特殊图案1 目录及资源索引2 题目及练习3 扩展题目4 课后作业5 总结的全部内容,希望文章能够帮你解决Java4Android自学记录(8-3):练习课 - 打印特殊图案1 目录及资源索引2 题目及练习3 扩展题目4 课后作业5 总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复