双重for循环和Arrays.toString()的运算

package day04;

import java.util.Arrays;
import java.util.Scanner;
/**
* 集合的换位运算:
* 提示用户进行5次数字输入,将输入的所有数字先按照输入的顺序依次存放到一个集合当中,
* 再通过换位运算对所有数字在集合中进行比较换位,最终实现从小到大排列或从大到小排列
* @author 74599
*
*/
public class ClassDemo01 {
  public static void main(String[] ages) {
    //创建键盘监听
    Scanner key = new Scanner(System.in);
    //创建一个数组,定义数组的长度为5
    double[] num = new double[5];
    //让用户进行循环输入5次(num.length)
    for(int i = 0;i<num.length;i++) {
      //将每次输入的值存放在数组的第i个元素中
      System.out.println("第" + (i+1) + "次输入:");
      num[i] = key.nextDouble();
      //输出用户输入的结果,需要使用Arrays.toString()才能输出数组内容,直接使用num进行输出打印的则是地址值
      System.out.println("第" + (i+1) + "次输入结果为:" + Arrays.toString(num));
    }
    //关闭键盘监听
    key.close();
    //打印输入结果,需要使用Arrays.toString()才能输出数组内容,直接使用num进行输出打印的则是地址值
    System.out.println("输入值:"+Arrays.toString(num));

    //从小到大排序
    System.out.println("从小到大:");
    //双重for遍历数组
    for(int i = 0;i<num.length;i++) {
      for(int j = 0;j <num.length-1;j++) {
        //对每一次的循环进行判断,判断当前当前数组角标的值是否大于当前角标+1的值
        if(num[j]>num[j+1]) {
          //创建一个double类型的变量x来对当前角标+1的数字进行存储
          double x = num[j+1];
          //如果当前角标的值大于了当前角标+1的值,那么就让当前角标+1的值替换到当前角标的值
          num[j+1] = num[j];
          //当前角标的值转换到x位置,也就是当前角标+1的位置,进行位置互换
          num[j] = x;
        }
      }
      //输出每次变换的数组动态
      System.out.println("从小到大!第"+(i+1)+"次结果:"+Arrays.toString(num));
    }

    //从大到小排序
    System.out.println("从大到小:");
    //双重for遍历数组
    for(int i = 0;i<num.length;i++) {
      for(int j = 0;j <num.length-1;j++) {
        //对每一次的循环进行判断,判断当前当前数组角标的值是否小于当前角标+1的值
        if(num[j]<num[j+1]) {
          //创建一个double类型的变量x来对当前角标+1的数字进行存储
          double x = num[j+1];
          //如果当前角标的值小于了当前角标+1的值,那么就让当前角标+1的值替换到当前角标的值
          num[j+1] = num[j];
          //当前角标的值转换到x位置,也就是当前角标+1的位置,进行位置互换
          num[j] = x;
        }
      }
      //输出每次变换的数组动态
      System.out.println("从大到小!第"+(i+1)+"次结果:"+Arrays.toString(num));
    }

    //计算数组的平均值
    System.out.print("平均值:");
    //创建一个sum类型的变量,并初始化值为0
    double sum = 0;
    //循环遍历数组
    for(int i = 0;i<num.length;i++) {
      //每遍历一个角标就将角标的值加上sum原本的值进行覆盖增加
      sum += num[i];
    }
    //用sum的值除以数组的长度得到平均值
    System.out.print(sum/num.length + "\t");
    //输出for循环数组遍历相加后的sum和值
    System.out.println("总和:"+sum);
  }
}

posted @ 2020-03-04 21:30  番禺谢广坤  阅读(290)  评论(0)    收藏  举报