练习:41

这个是老师布置的作业,第六个选项没有搞定。前几天一直卡在二重循环了,代码比较乱。还有一个是:假如输入的不是数字这个,我没有搞定。因为用了String数据类型,那么switch选择结构怎么处理?

原题下载:

老师布置的作业

参考代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import java.util.Scanner;
public class Test45 {
    public static void main(String[] args) {
        Scanner input = new Scanner (System.in);
        System.out.println("*********************************************");
        System.out.println("*******欢迎进入图形的世界************");
        System.out.println("*********************************************");
        System.out.println("规则:输入1~6任意序号选择您需要的图案,输入0代表结束.com on!");
        boolean sum = true; //判断条件为真
        int num ; //定义选择菜单数字
        do{
            System.out.println("请选择您需要的图形:");
            System.out.println("1.正方形");
            System.out.println("2.左三角形");
            System.out.println("3.右三角形");
            System.out.println("4.倒三角形");
            System.out.println("5.正三角形");
            System.out.println("6.菱形");
            System.out.println();
            System.out.println("请选择序号:");
            num = input.nextInt();
            switch (num){
            case 1 :
                for (int i =1;i<=5;i++){
                    for (int j=1;j<=5;j++){
                        System.out.print("*");
                    }
                    System.out.println();
                }
                break;
            case 2 :
                //输出左三角形
                //输出上方三角形
                for (int c=0;c<=5;c++){//循环条件
                    for ( int a =5-c;a>0;a--){ //输出空格,从上到下依次是:4,3,2,1
                            System.out.print(" ");
                        }
                    for (int j=0;j<c;j++){//输出*号,从上到下依次是:1,2,3,4
                        System.out.print("*");
                    }
                        System.out.println();
                    }
                //输出下方三角形
                for (int p=5-1;p>0;p--){ //下方三角形循环次数
                    for (int x=5-p;x>0;x--){//输出空格,从上到下依次是:1,2,3,4
                        System.out.print(" ");
                    }
                    for (int w=p;w>0;w--){//输出*号,从上到下依次是:4,3,2,1
                        System.out.print("*");
                    }
                    System.out.println();
                }
                break;
            case 3 :
                //输出右三角形
                //输出三角形的上半部分
                for (int i=0;i<=5;i++){//循环条件
                    for (int c=1;c<=i;c++){//输出*号,不存在空格,省略一个循环条件(从上到下:1,2,3,4)
                        System.out.print("*");
                    }
                    System.out.println();
                    }
                //输出三角形的下半部分
                for (int a=1;a<=5;a++){ //循环条件
                    for (int b=5-a;b>0;b--){ //输出*号,不存在空格,省略一个循环条件(从上到下:4,3,2,1)
                        System.out.print("*");
                        }
                    System.out.println();
                }  
                break;
            case 4 :
                //输出倒三角形
                for (int i=5;i>0;i--){//循环条件
                    for (int k=1;k<=5-i;k++){//输出空格,从上到下依次是:0,1,2,3,4
                        System.out.print(" ");
                    }
                    for (int j=2*i-1;j>0;j--){//输出*号,从上到下依次是:9,7,5,3,1
                        System.out.print("*");
                    }
                    System.out.println();
                }

                break;
            case 5 :
                //输出正三角形
                for (int i=1;i<=5;i++){//循环条件
                    for (int j=5-i;j>=0;j--){ //输出空格,从上到下依次是:5,4,3,2,1
                        System.out.print(" ");
                    }
                    for (int b=1;b<=2*i-1;b++){//输出*号,从上到下依次是:1,3,5,7,9
                        System.out.print("*");
                    }
                    System.out.println();
                }
                break;
            case 6 :
                //输出上方正三角形
                for (int i=1;i<5;i++){ //循环条件
                    for (int j=5-i;j>0;j--){ //输出空格,从上到下依次是4,3,2,1
                        System.out.print(" ");
                    }
                    for (int b=1;b<=2*i-1;b++){//输出*号,从上到下依次是1,3,5,7
                        System.out.print("*");
                    }
                    System.out.println();
                }
                //输出下方倒三角形
                for (int i=5;i>0;i--){//循环条件
                    for (int k=1;k<=5-i;k++){ //输出空格,依次是1,2,3,4
                        System.out.print(" ");
                    }
                    for (int j=2*i-1;j>0;j--){//输出*号,从上到下依次是5,3,1
                        System.out.print("*");
                    }
                    System.out.println();
                }
                break;
                default:
                    sum = false ; //条件为假,结束循环
                    System.out.println("");
                break;
            }
        } while (num!=0&&num<=6&&num>=1);
          if ( sum==false){ //条件为假输出下面这句话.
              System.out.println("对不起,只能输入1-6之间的序号,您的输入不符合要求,程序退出!");
          }
    }
}

发表评论

您的电子邮箱地址不会被公开。

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据