练习:41

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

原题下载:

老师布置的作业

参考代码:

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;j0;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来减少垃圾评论。了解我们如何处理您的评论数据