☞作业要求
☞实现思路
|--实心菱形:
打印一个三角形,在三角形下面打印一个倒三角形
如上解析,要写两段代码,上面打印正三角形,下面打印倒三角形
|--空心菱形:
这个自己没有独立想明白,参考了网上的答案
参考:https://www.cnblogs.com/navyouth/p/7839750.html
对原本的代码进行debug,跟进变量的值的变化,发现,该代码是一行一行的打印的,如果满足i==j 或者 j==8-i的条件就打一个星星,否则就打印一个空格。
☞代码内容
|--实心菱形
import java.util.Scanner;
/**
* @auther::周小龙
* @Description: 实心菱形
* @program: Xunhuan
* @create: 2019-07-02 09:40
*/
public class LingXing {
static Scanner sc=new Scanner(System.in);
public static void main(String[] args) {
//单边由几个星星构成
System.out.println("请问你要单边几个点组成的菱形:");
int xing = sc.nextInt();
System.out.println("以下是由单边"+xing+"个点组成的菱形\n--------------------");
//打印菱形的上半部分
for (int i=1;i<=xing;i++){
for (int j=1;j<=xing-i;j++){
System.out.print(" ");
}
for (int k = 1;k<=(2*i-1);k++){
System.out.print("*");
}
System.out.println();
}
//打印菱形的下半部分
for (int i=xing-1;i>=1;i--){
for (int j=xing-1;j>=i;j--){
System.out.print(" ");
}
for (int k=1;k<=2*i-1;k++){
System.out.print("*");
}
System.out.println();
}
}
}
|--空心菱形
/**
* @auther::周小龙
* @Description: 空心菱形
* @program: Xunhuan
* @create: 2019-07-02 11:59
*/
import java.util.Scanner;
public class EmptyRhombus {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
//请问你要单边几个点组成的菱形
System.out.println("请问你要单边几个点组成的菱形");
//菱形由几个星星组成一条边
int xing = sc.nextInt()*2;
System.out.println("以下是由单边"+(xing/2)+"个点组成的菱形\n--------------------");
//菱形的上半部分
for (int i = xing/2; i >= 1; i--) {
for (int j = 1; j <= xing-1; j++) {
if (i == j || j == xing - i ) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
//菱形的下半部分
for (int i = 2; i <= xing/2; i++) {
for (int j = 1; j <= xing-1; j++) {
if (i == j || j == xing - i) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
☞运行结果
|--实心菱形
|--空心菱形
☞代码调优
☞错误记录
异常说明:代码删除或注释的时候,有一个花括号没有处理干净
发生原因:未按照花括号要严格配对的方式处理代码
改正方式:删除或注释掉标红线的花括号
改正前
改正后
来源:oschina
链接:https://my.oschina.net/u/4414230/blog/3480034