输入一批整数,输出其中的最大值和最小值,输入数字0结束循环。
如图:
请输入一个整数(输入0结束):56
请输入一个整数(输入0结束):23
请输入一个整数(输入0结束):67
请输入一个整数(输入0结束):89
请输入一个整数(输入0结束):6
请输入一个整数(输入0结束):0
最大值是:89       最小值是:6
求用while,do-while,for循环求解?

解决方案 »

  1.   

    因为循环条件为true,控制条件在循环体内,所以循环体都一样的Scanner scanner = new Scanner(System.in);
    List<Integer> list = new ArrayList<Integer>();
    //while
    while (true)
    {
    System.out.print("请输入一个整数(输入0结束):");
    int a = scanner.nextInt();
    if (a == 0)
    {
    break;
    }
    list.add(a);
    }
    // do-while
    do
    {
    System.out.print("请输入一个整数(输入0结束):");
    int a = scanner.nextInt();
    if (a == 0)
    {
    break;
    }
    list.add(a);
    } while (true);
    //for
    for (;;)
    {
    System.out.print("请输入一个整数(输入0结束):");
    int a = scanner.nextInt();
    if (a == 0)
    {
    break;
    }
    list.add(a);
    }
    Collections.sort(list);
    System.out.println("最大值是:" + list.get(list.size() - 1) + " 最小值是: "
    + list.get(0));
      

  2.   

    import java.util.Scanner;
    public class NewClass
    {
        public static Scanner in;
        public static  int max,min;
        public static  int count;    //计数,用于设置最大值和最小值的初值
        public static  void forCall()
        {
            System.out.print("请输入一个整数(输入0结束):");
            count=1;
            int i=in.nextInt();
            if(i==0)  //首次输入数字0,输出错误信息
                System.err.println("没有任何数值输入。");
            for(;i!=0;)
            {
                if(count==1)
                {
                    max=i;
                    min=i;
                }
                else
                    if (max<i)
                        max=i;
                    else
                        if(min>i)
                            min=i;
                count++;
                System.out.print("请输入一个整数(输入0结束):");
                i=in.nextInt();
            }
        }
        public static void whileCall()
        {
            System.out.print("请输入一个整数(输入0结束):");
            count=1;
            int i=in.nextInt();
            if(i==0)      //首次输入数字0,输出错误信息
                System.err.println("没有任何数值输入。");
            while(i!=0)
            {
                if(count==1)
                {
                    max=i;
                    min=i;
                }
                else
                    if (max<i)
                        max=i;
                    else
                        if(min>i)
                            min=i;
                count++;
                System.out.print("请输入一个整数(输入0结束):");
                i=in.nextInt();
            }
        }
        public static void doWhileCall()
        {
            System.out.print("请输入一个整数(输入0结束):");
            count=1;
            int i=in.nextInt();
            if(i==0)      //首次输入数字0,输出错误信息
                System.err.println("没有任何数值输入。");
            do
            {
                if(count==1)
                {
                    max=i;
                    min=i;
                }
                else
                    if (max<i)
                        max=i;
                    else
                        if(min>i)
                            min=i;
                count++;
                System.out.print("请输入一个整数(输入0结束):");
                i=in.nextInt();
            }while(i!=0);
        }
        public static void main(String[] args)
        {
            in=new Scanner(System.in);
    //        forCall();
    //        whileCall();
            doWhileCall();
            System.out.println("最大值是:"+max+" 最小值是:"+min);
        }
    }已经调试通过。
      

  3.   

    import java.util.Scanner;
    /**
     *
     * @author Administrator
     */
    public class NewClass
    {
        public static Scanner in;
        public static  int max,min;
        public static  int count;    //计数,用于设置最大值和最小值的初值
        public static  void forCall()
        {
            System.out.print("请输入一个整数(输入0结束):");
            count=1;
            int i=in.nextInt();
            if(i==0)  //首次输入数字0,输出错误信息
                System.err.println("没有任何数值输入。");
            for(;i!=0;)
            {
                if(count==1)
                {
                    max=i;
                    min=i;
                }
                else
                    if (max<i)
                        max=i;
                    else
                        if(min>i)
                            min=i;
                count++;
                System.out.print("请输入一个整数(输入0结束):");
                i=in.nextInt();
            }
        }
        public static void whileCall()
        {
            System.out.print("请输入一个整数(输入0结束):");
            count=1;
            int i=in.nextInt();
            if(i==0)      //首次输入数字0,输出错误信息
                System.err.println("没有任何数值输入。");
            while(i!=0)
            {
                if(count==1)
                {
                    max=i;
                    min=i;
                }
                else
                    if (max<i)
                        max=i;
                    else
                        if(min>i)
                            min=i;
                count++;
                System.out.print("请输入一个整数(输入0结束):");
                i=in.nextInt();
            }
        }
        public static void doWhileCall()
        {
            System.out.print("请输入一个整数(输入0结束):");
            count=1;
            int i=in.nextInt();
            if(i==0)      //首次输入数字0,输出错误信息
                System.err.println("没有任何数值输入。");
            do
            {
                if(count==1)
                {
                    max=i;
                    min=i;
                }
                else
                    if (max<i)
                        max=i;
                    else
                        if(min>i)
                            min=i;
                count++;
                System.out.print("请输入一个整数(输入0结束):");
                i=in.nextInt();
            }while(i!=0);
        }
        public static void main(String[] args)
        {
            in=new Scanner(System.in);
    //        forCall();
    //        whileCall();
            doWhileCall();
            System.out.println("最大值是:"+max+" 最小值是:"+min);
        }
    }
    这样有格式了吗?
      

  4.   

    是啊,太长了。
    import java.util.*;
    import java.io.*;
    public class Test {
        public static void main(String args[]) {
        System.out.print("请输入一个整数(输入0结束):");
        Scanner scanner = new Scanner(System.in);
        int b=scanner.nextInt(); 
        int big=b, small=b;
        while(b!=0){
            if(b<small) small=b;
            if(b>big) big=b;
            System.out.print("请输入一个整数(输入0结束):");
            b= scanner.nextInt();
        }
        System.out.println("big == "+big);
        System.out.println("small == "+small);
        }
    }
      

  5.   

        
    最后两行改成这。
    System.out.print("最大值是:"+big);
    System.out.print(" 最小值是:"+small);print的意思是不用自动加换行符。
      

  6.   

    public static void main(String[] args){        
            Scanner scanner = new Scanner(System.in);
            Map maxValue = new HashMap();
            Map minValue = new HashMap();
            //while
            while (true)
            {
                System.out.print("请输入一个整数(输入0结束):");
                int a = scanner.nextInt();
                if (a == 0)
                {
                    break;
                }
                
                if(maxValue.isEmpty()){
                     maxValue.put("maxValue",a);
                }else{
                     int temp = maxVale.get("maxValue");
                     if(temp<a>{
                       maxValue.put("maxValue",a);
                     }
                }
                if(minValue.isEmpty()){
                     minValue.put("minValue",a);
                }else{
                     int temp = minVale.get("minValue");
                     if(temp>a>{
                       maxValue.put("minValue",a);
                     }
                }        }
           }
            System.out.println("最大值为: " + maxValue.get("maxValue"));
            System.out.println("最小值为: " + minValue.get("minValue")); 
    }
      

  7.   

    比较简洁一点的:
    import java.util.Scanner;
    public class Test2
    {
    public static void main(String[] args)
    {
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入一个整数(输入0结束)");
    int flag = scanner.nextInt();
    int max = flag, min = flag;
    while(flag!=0)
    {
    System.out.println("请输入一个整数(输入0结束)");
    flag = scanner.nextInt();
    if(max<flag)
    {
    max=flag;
    }
    if (min>flag&&flag!=0)
    {
    min=flag;
    }
    }
    System.out.println("最大值是:"+max+"  最小值是:"+min);
    }
    }