为什么这个'if'不能在Java中执行?

时间:2015-11-11 06:43:12

标签: java if-statement arraylist

public static void main(String[] args) {        
    //initialization of array lists 
    ArrayList<Integer> indexArray=new ArrayList();
    ArrayList<Integer> sortedIndex=new ArrayList();
    Scanner in=new Scanner(System.in);
    System.out.println("Enter your index number ");
    int index=in.nextInt();
    int ind=0;  
    while (index > 0) {            
        indexArray.add(index%10);            
        index=index/10;
    }
    int indexArraySize=indexArray.size();
    int max=0;
    int min=9;
    while(indexArraySize>0){
       int digit=indexArray.get(indexArraySize-1);
       if(min>digit){
           min=digit;
       }
       if(max<digit){
           max=digit;
       }           
       indexArraySize--;            
    }
    System.out.println("Maximum= "+max);
    System.out.println("Minimum= "+min);
}

此代码返回除00000000

以外的任何整数输入的正确值

对于00000000它给出了 最大值= 0 最低= 9

这意味着它没有被执行

if(min>digit){
    min=digit;
}

这是什么原因,我该如何纠正?

1 个答案:

答案 0 :(得分:1)

您的第一个while循环将输入数字的所有数字添加到ArrayList,除非输入的数字为0,在这种情况下,List没有添加任何内容。

因此,minmax变量保留其默认值。

您可以通过添加0:

的测试来解决它
if (index == 0)
    indexArray.add(0);
else {
    while (index > 0) {
        indexArray.add(index%10);
        index=index/10;
    }
}