一、循环

JAVA用户循环输入字母 java循环输入一个数组_Arrays类方法Java的for,while循环与C/C++及其相似,不同之处在于Java提供了更强大的跳出循环的功能。在Java中,break不仅可以跳出当前循环,还可以跳出更外层指定循环层的循环,此时需要在break后加一个标签,这个标签用于标识一个外层循环。Java中的标签就是一个紧跟英文冒号的标识符,且放在循环语句前。示例程序如下:

public static void main(String[] args)
{
    outer:
    for(int i = 0; i < 3; i++)
        for(int j = 0; j < 3; j++)
        {
            System.out.println("i的值为:" + i + " j的值为" + j);
            if(j==2) break outer;
        }
}

JAVA用户循环输入字母 java循环输入一个数组_Java循环_02

二、数组

JAVA用户循环输入字母 java循环输入一个数组_Arrays类方法Java定义数组有两种方式,以int型数组为例,可以是int[] aint a[]两种,一般用第一种。可以先声明数组大小再赋值初始化,也可以不声明大小直接初始化,示例程序如下:

public static void main(String[] args)
{
    int[] a = new int[10];  // 先声明数组大小再赋值
    for(int i = 0; i < a.length; i++)
        a[i] = i*i;
    int[] b = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};  // 直接赋值
    for(int i = 0; i < a.length && i < b.length; i++)
        System.out.println(a[i] + " " + b[i]);
}

JAVA用户循环输入字母 java循环输入一个数组_Java数组_04


JAVA用户循环输入字母 java循环输入一个数组_Arrays类方法Java提供了数组的foreach循环,语法格式如下:

for(type t: array)
{
    // t自动迭代访问每个元素...
}

举个例子:

public static void main(String[] args)
{
    int[] a = new int[10];
    for(int i = 0; i < a.length; i++)
        a[i] = i*i;
    for(int t: a)
        System.out.print(t+" ");
}

JAVA用户循环输入字母 java循环输入一个数组_Java跳出外层循环_06


Note!!!foreach这种循环可以遍历数组,但不能用于赋值操作。

JAVA用户循环输入字母 java循环输入一个数组_Arrays类方法多维数组方式相似,以二维数组为例,先用辅助函数arrInfo用于打印数组信息,接着在主函数中用直接赋值和先声明大小再赋值两种方式分别进行演示:

public class basicData {
    public static void arrInfo(int[][] a)
    {
        for(int i = 0; i < a.length; i++)
        {
            for(int j = 0; j < a[i].length; j++)
            {
                System.out.print(a[i][j]+ " ");
            }
            System.out.println();
        }
    }
    public static void main(String[] args)
    {
        int[][] a = {{1, 2}, {3, 4}};
        int[][] b = new int[2][2];
        arrInfo(a);
        for(int i = 0; i < b.length; i++)
            for(int j = 0; j < b[i].length; j++)
                b[i][j] = 1;
        arrInfo(b);
    }
}

JAVA用户循环输入字母 java循环输入一个数组_Java跳出外层循环_08

三、Arrays类

JAVA用户循环输入字母 java循环输入一个数组_Arrays类方法Arrays类封装了很多现成的操作数组的方法,包括二分查找、排序、赋值等等。下面以一个简单的实例展示:

public static void main(String[] args) {
    int[] a = new int[]{1, 2, 3, 4, 5};

    // 二分查找,要求数组升序排列,搜索范围是[0, a.length-1]
    int index = Arrays.binarySearch(a, 3);
    System.out.println(index); // index=2
    // 二分查找,要求数组升序排列,搜索范围是[fromIndex, toIndex)
    int index2 = Arrays.binarySearch(a, 1, 4, 2);
    System.out.println(index2); // index2=1

    // 将一个数组中元素复制到另一个数组中去
    int[] b = Arrays.copyOf(a, a.length); // b1={1,2,3,4,5}
    // 将一个数组中范围为[from, to)的元素复制到另一个数组中去
    int[] b2 = Arrays.copyOfRange(a, 1, 4); // b2={2,3,4}

    // 判断两个数组是否相等
    boolean flag = Arrays.equals(a, b);
    System.out.println(flag);  // flag=true

    // 将数组元素全部赋值为val
    Arrays.fill(a, 1);  // a={1,1,1,1,1}
    // 将数组元素从fromIndex到toIndex-1赋值为val
    Arrays.fill(a, 1, 4, 2); // a={1,2,2,2,1}

    // 将数组排序
    int[] c = {3, 1, 2, 1, 5, 4};
    Arrays.sort(c);  // c={1,1,2,3,4,5}

    // 将数组转化为字符串,数组元素用','+' '方式隔开
    String str = Arrays.toString(c);
    System.out.println(str); // str=[1, 1, 2, 3, 4, 5]
}