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;
}
这是什么原因,我该如何纠正?
答案 0 :(得分:1)
您的第一个while循环将输入数字的所有数字添加到ArrayList
,除非输入的数字为0,在这种情况下,List
没有添加任何内容。
因此,min
和max
变量保留其默认值。
您可以通过添加0:
的测试来解决它if (index == 0)
indexArray.add(0);
else {
while (index > 0) {
indexArray.add(index%10);
index=index/10;
}
}