public class Fol
{
public static void main(String[] args) {
int[] a = {1,4,6,3,8,9};
for(int i = 4;i < 3;i++) {//这样做有错误吗?i = 4时要不要判断i < 3?还是直接执行System语句.
System.out.println(a[4]);
}
}
}//为什么最后没有输出结果,不是应该输出8吗?回答一下我这个程序中提出的问题?

解决方案 »

  1.   

    for(int i = 4;i < 3;i++)  //for语句,初始条件;判断条件;循环计数
    所以int i = 4是初始化循环变量的值为4,接着进行条件判断 i < 3(此时i的值是4),显然 4 > 3,所以条件不满足,没有进入循环体,所以没有任何输出。
      

  2.   

    for的执行顺序为
    for(1;2;3){
      4
    }
    1 -> 2 ->4 ->3
    所以你的for循环根本就不执行
      

  3.   

    for(int i = 4;i < 3;i++),int i = 4这一句是初始化循环控制变量, i < 3这是句是循环控制条件,也就是当i < 3时进入循环!现在i初始值已经是4了,所以不会进循环!
      

  4.   


    public class NumSort
    {
    public static void main(String[] args) {
    int[] a = new int[args.length];
    for(int i = 0;i<args.length;i++) {
    a[i] = Integer.parseInt(args[i]);

    }
    print(a);
    selectionSort(a);
    print(a);
    }
    private static void selectionSort(int[] a) {
    int k,temp; 
    for(int i = 0;i <a.length;i++) {
    k = i;
    for(int j = k+1;j<a.length;j++) {
    if(a[j] < a[k]) {
    k = j;
    }


    }
    if(k != i) {
    temp = a[i];
    a[i] = a[k];
    a[k] = temp;
    } }

    }
    private static void print(int[] a) {
    for(int i = 0;i<a.length;i++) {
    System.out.print(a[i] + " ");
    }
    System.out.println();
    }
    }
    那这个程序中当外层循环中的变量i=8的时候,内层循环中的变量j=9,此时j<a.length显然不成立,难道这个程序中没有判断a[9]和a[8]的大小?
      

  5.   

    for(int j = k+1;j<a.length;j++) 数组中的最后两个数对比不到。
      

  6.   

    for循环的第一轮也要判断循环条件的。
      

  7.   

    for(int i = 4;i < 3;i++) 根本就无法进入循环