昨天学的for嵌套循环,学会了输出正三角形和倒三角形.正三角形和倒三角形加起来不就是个菱形吗.
/*
0625,今天自习
需求:定义一个小程序,打印菱形
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*
思路:
-----*
----* *
---* * *
--* * * *
-* * * * *
* * * * * *
-* * * * *
--* * * *
---* * *
----* *
-----*
其实是这样的,前边加了个空格型的的三角形.
现在写代码习惯写个函数封装,便于复用.
返回值为空,没有未知变量
写完了,可是这样毫无扩展性可言,想定义一个用户自己定义行数的,打算使用Scanner 键盘录入
结论:通过自己的推理,发现lingXing(),调用函数的时候()里可以填一个定义好的变量.
*/
import java.util.Scanner;//导包
class ForForTest2
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
//获取键盘录入的下一个int值
int number = sc.nextInt();
lingXing(number);
}
public static void lingXing(int hang)
{
/*
//调用对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入行数");
//获取键盘录入的下一个int值
int hang = sc.nextInt();
*/
System.out.println("Surpise:");
//先写上半部分
for (int x = 0;x <hang ;x++ )
{
//写空格的尖朝下的三角形. 5 4 3 2 1 0
for (int y = x ;y < hang - 1 ; y++ )
{
System.out.print(" ");//打印空格
}
//写*组成的正三角形 1 2 3 4 5 6
for (int z = 0;z<=x ;z++ )
{
System.out.print("* ");
}
System.out.println();
}
//写下半部分 比上边少一行
for (int x = 0; x < hang -1 ;x++ )
{
//写尖朝上的空格组成的三角形 1 2 3 4 5
for (int y = 0;y<=x ;y++ )
{
System.out.print(" ");
}
//写尖朝下的*组成的正三角形
for (int z =x;z<hang - 1 ;z++ )
{
System.out.print("* ");
}
System.out.println();
}
}
}
|
|