import java.util.Scanner;public class Hello {
public static void main(String args[]){Scanner scan = new Scanner(System.in);
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("0:退出");
int choose = scan.nextInt();
while(choose != 0){
switch(choose){
case 1:{
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入三角形的底");
int a = scan1.nextInt();
System.out.println("请输入三角形的高");
int b = scan1.nextInt();
int c = (a*b)/2;
System.out.println("三角形面积为"+c);
}break;
case 2:{
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入四边形的长");
int a = scan1.nextInt();
System.out.println("请输入四边形的宽");
int b = scan1.nextInt();
int c = (a*b);
System.out.println("四边形面积为"+c);
}break;
case 3:{
System.out.println("请输入一个数猜它是什么");
int name = 20;
Scanner scan1 = new Scanner(System.in);
int pass = scan1.nextInt();
if(pass<name)
System.out.println("您输入的太小了");
else if(pass>name)
System.out.println("您输入的太大了");
else 
System.out.println("恭喜您");}break;
case 4:{
int i; 
int j; 
int m; 
for (m = 7; m > 0; m--) { 

for (i = 0; i < m; i++) { 
System.out.print(" "); 

System.out.print("*"); 
for (j = 0; j <= 2 * (7 - m) - 2; j++) { 
System.out.print(" "); 

if (m == 7) { 
System.out.println(""); 
} else 
System.out.println("*"); } 

for (m = 7; m >= 0; m--) { 

for (i = 7; i > m; i--) { 
System.out.print(" "); 

System.out.print("*"); 
for (j = 12; j > 2 * (7 - m) - 1; j--) { 
System.out.print(" "); 

if (m == 0) { 
System.out.println(""); 
} else 
System.out.println("*"); 


}break;
case 5:{
for(int i=0;i<10;i++){
for(int j=0;j<10-i;j++){
if(j>i){
System.out.print("*");
}
else{
System.out.print(" ");
}
}
System.out.println();
}}break;
case 6:{
int []array=new int[10];
Scanner sc=new Scanner(System.in);
System.out.println("请输入3个数:");
for(int i=0;i<3;i++)
{
array[i]=sc.nextInt();
}
int maxIndex=0;
int max=array[0];
for(int i=0;i<3;i++)
{
if(array[i]>max)
{
max=array[i];
maxIndex=i;
}
}
int min=array[0];
int minIndex=0;
for(int i=0;i<3;i++)
{
if(array[i]<min)
{
min=array[i];
minIndex=i;
}
}
System.out.println("最小值为:array["+minIndex+"]="+array[minIndex]);
System.out.println("最大值为:array["+maxIndex+"]="+array[maxIndex]);}break;
}}}
}高手帮我这个新手修改些代码吧,或者提些建议;其中发生打印绘制图形出现死循环, 选择一个菜单进入后, 运行完成后,仍然在那执行那段语句,想要执行一条后返回到主菜单! 

解决方案 »

  1.   

    应该是这里的问题 while(choose != 0)
    输入非零数字后,循环一直执行下去,可以改为do while 循环
    在后边加上一个判断条件!import java.util.Scanner; public class Hello { 
    public static void main(String args[]){ 
    String answer;
    Scanner scan = new Scanner(System.in); 
    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("0:退出"); 
    int choose = scan.nextInt(); 
    switch(choose){ 
    case 1:{ 
    Scanner scan1 = new Scanner(System.in); 
    System.out.println("请输入三角形的底"); 
    int a = scan1.nextInt(); 
    System.out.println("请输入三角形的高"); 
    int b = scan1.nextInt(); 
    int c = (a*b)/2; 
    System.out.println("三角形面积为"+c); 
    }break; 
    case 2:{ 
    Scanner scan1 = new Scanner(System.in); 
    System.out.println("请输入四边形的长"); 
    int a = scan1.nextInt(); 
    System.out.println("请输入四边形的宽"); 
    int b = scan1.nextInt(); 
    int c = (a*b); 
    System.out.println("四边形面积为"+c); 
    }break; 
    case 3:{ 
    System.out.println("请输入一个数猜它是什么"); 
    int name = 20; 
    Scanner scan1 = new Scanner(System.in); 
    int pass = scan1.nextInt(); 
    if(pass <name) 
    System.out.println("您输入的太小了"); 
    else if(pass>name) 
    System.out.println("您输入的太大了"); 
    else 
    System.out.println("恭喜您"); }break; 
    case 4:{ 
    int i; 
    int j; 
    int m; 
    for (m = 7; m > 0; m--) { 

    for (i = 0; i < m; i++) { 
    System.out.print(" "); 

    System.out.print("*"); 
    for (j = 0; j <= 2 * (7 - m) - 2; j++) { 
    System.out.print(" "); 

    if (m == 7) { 
    System.out.println(""); 
    } else 
    System.out.println("*"); } 

    for (m = 7; m >= 0; m--) { 

    for (i = 7; i > m; i--) { 
    System.out.print(" "); 

    System.out.print("*"); 
    for (j = 12; j > 2 * (7 - m) - 1; j--) { 
    System.out.print(" "); 

    if (m == 0) { 
    System.out.println(""); 
    } else 
    System.out.println("*"); 


    }break; 
    case 5:{ 
    for(int i=0;i <10;i++){ 
    for(int j=0;j <10-i;j++){ 
    if(j>i){ 
    System.out.print("*"); 

    else{ 
    System.out.print(" "); 


    System.out.println(); 
    } }break; 
    case 6:{ 
    int []array=new int[10]; 
    Scanner sc=new Scanner(System.in); 
    System.out.println("请输入3个数:"); 
    for(int i=0;i <3;i++) 

    array[i]=sc.nextInt(); 

    int maxIndex=0; 
    int max=array[0]; 
    for(int i=0;i <3;i++) 

    if(array[i]>max) 

    max=array[i]; 
    maxIndex=i; 


    int min=array[0]; 
    int minIndex=0; 
    for(int i=0;i <3;i++) 

    if(array[i] <min) 

    min=array[i]; 
    minIndex=i; 


    System.out.println("最小值为:array["+minIndex+"]="+array[minIndex]); 
    System.out.println("最大值为:array["+maxIndex+"]="+array[maxIndex]); }break; 

    System.out.println("是否退出?y/n"); 
    answer=scan.next();
    }while(!answer.equals("y"));} 

      

  2.   


    package zgq;import java.util.Scanner;public class TT {
    public static void main(String args[]){

    boolean go=true;
    while(go){
    Scanner scan = new Scanner(System.in);
    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("0:退出");
    int choose = scan.nextInt();
    //while(run){
        switch(choose){
        case 1:{
         Scanner scan1 = new Scanner(System.in);
         System.out.println("请输入三角形的底");
         int a = scan1.nextInt();
         System.out.println("请输入三角形的高");
         int b = scan1.nextInt();
         int c = (a*b)/2;
         System.out.println("三角形面积为"+c);
    } break;
        case 2:{
         Scanner scan1 = new Scanner(System.in);
         System.out.println("请输入四边形的长");
         int a = scan1.nextInt();
         System.out.println("请输入四边形的宽");
         int b = scan1.nextInt();
         int c = (a*b);
         System.out.println("四边形面积为"+c);
    } break;
        case 3:{
         System.out.println("请输入一个数猜它是什么");
         int name = 20;
         Scanner scan1 = new Scanner(System.in);
         int pass = scan1.nextInt();
         if(pass <name)
         System.out.println("您输入的太小了");
         else if(pass>name)
         System.out.println("您输入的太大了");
         else
         System.out.println("恭喜您");

    } break;
        case 4:{
         int i;
         int j;
         int m;
         for (m = 7; m > 0; m--) {
         {
         for (i = 0; i < m; i++) {
         System.out.print(" ");
         }
         System.out.print("*");
         for (j = 0; j <= 2 * (7 - m) - 2; j++) {
         System.out.print(" ");
         }
         if (m == 7) {
         System.out.println("");
         } else
         System.out.println("*");

         }
         }
         for (m = 7; m >= 0; m--) {
         {
         for (i = 7; i > m; i--) {
         System.out.print(" ");
         }
         System.out.print("*");
         for (j = 12; j > 2 * (7 - m) - 1; j--) {
         System.out.print(" ");
         }
         if (m == 0) {
         System.out.println("");
         } else
         System.out.println("*");
         }
         }


        }break;
        case 5:{
         for(int i=0;i <10;i++){
         for(int j=0;j <10-i;j++){
         if(j>i){
         System.out.print("*");
         }
         else{
         System.out.print(" ");
         }
         }
         System.out.println();
         }

        }break;
        case 6:{
         int []array=new int[10];
         Scanner sc=new Scanner(System.in);
         System.out.println("请输入3个数:");
         for(int i=0;i <3;i++)
         {
         array[i]=sc.nextInt();
         }
         int maxIndex=0;
         int max=array[0];
         for(int i=0;i <3;i++)
         {
         if(array[i]>max)
    {
         max=array[i];
         maxIndex=i;
    }
         }
         int min=array[0];
         int minIndex=0;
         for(int i=0;i <3;i++)
         {
         if(array[i] <min)
         {
         min=array[i];
         minIndex=i;
         }
         }
         System.out.println("最小值为:array["+minIndex+"]="+array[minIndex]);
         System.out.println("最大值为:array["+maxIndex+"]="+array[maxIndex]);

        }break;
        }
      //} 
    }

    }
    }这样可以满足你的需求了,但按0退出你要多写个case才行,我没写了。。
      

  3.   

    在每一个
    case: x
    {
        在这里面加上choose = 0;就退出了这个循环。
    }
    然后再用一个大的循环。把所有的都控制下。退出swith后。进行大的循环就可以了。大的循环用Boolean类型的变量控制就可以了!
      

  4.   


    public class TT {
    public static void main(String args[]) { boolean go = true;
    do {
    Scanner scan = new Scanner(System.in);
    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("0:退出");
    int choose = scan.nextInt();
    // while(run){
    switch (choose) {
    case 0:{
    System.exit(0);
    }
    case 1: {
    Scanner scan1 = new Scanner(System.in);
    System.out.println("请输入三角形的底");
    int a = scan1.nextInt();
    System.out.println("请输入三角形的高");
    int b = scan1.nextInt();
    int c = (a * b) / 2;
    System.out.println("三角形面积为" + c);
    }
    break;
    case 2: {
    Scanner scan1 = new Scanner(System.in);
    System.out.println("请输入四边形的长");
    int a = scan1.nextInt();
    System.out.println("请输入四边形的宽");
    int b = scan1.nextInt();
    int c = (a * b);
    System.out.println("四边形面积为" + c);
    }
    break;
    case 3: {
    System.out.println("请输入一个数猜它是什么");
    int name = 20;
    Scanner scan1 = new Scanner(System.in);
    int pass = scan1.nextInt();
    if (pass < name)
    System.out.println("您输入的太小了");
    else if (pass > name)
    System.out.println("您输入的太大了");
    else
    System.out.println("恭喜您"); }
    break;
    case 4: {
    int i;
    int j;
    int m;
    for (m = 7; m > 0; m--) {
    {
    for (i = 0; i < m; i++) {
    System.out.print(" ");
    }
    System.out.print("*");
    for (j = 0; j <= 2 * (7 - m) - 2; j++) {
    System.out.print(" ");
    }
    if (m == 7) {
    System.out.println("");
    } else
    System.out.println("*"); }
    }
    for (m = 7; m >= 0; m--) {
    {
    for (i = 7; i > m; i--) {
    System.out.print(" ");
    }
    System.out.print("*");
    for (j = 12; j > 2 * (7 - m) - 1; j--) {
    System.out.print(" ");
    }
    if (m == 0) {
    System.out.println("");
    } else
    System.out.println("*");
    }
    } }
    break;
    case 5: {
    for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10 - i; j++) {
    if (j > i) {
    System.out.print("*");
    } else {
    System.out.print(" ");
    }
    }
    System.out.println();
    } }
    break;
    case 6: {
    int[] array = new int[10];
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入3个数:");
    for (int i = 0; i < 3; i++) {
    array[i] = sc.nextInt();
    }
    int maxIndex = 0;
    int max = array[0];
    for (int i = 0; i < 3; i++) {
    if (array[i] > max) {
    max = array[i];
    maxIndex = i;
    }
    }
    int min = array[0];
    int minIndex = 0;
    for (int i = 0; i < 3; i++) {
    if (array[i] < min) {
    min = array[i];
    minIndex = i;
    }
    }
    System.out.println("最小值为:array[" + minIndex + "]="
    + array[minIndex]);
    System.out.println("最大值为:array[" + maxIndex + "]="
    + array[maxIndex]); }
    break;
    }
    }while(go);
    }
    }