这个是老师布置的作业,第六个选项没有搞定。前几天一直卡在二重循环了,代码比较乱。还有一个是:假如输入的不是数字这个,我没有搞定。因为用了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之间的序号,您的输入不符合要求,程序退出!"); } } } |