2013-12-12 45 views
0

我有这样的代码,一个阵列中获得最高和最低值,以后再打印出所有值的行七:如何检查是否INT有一个值

int hochstes; 
int niedrig; 
     int q = 0; 
     for(int i = 1; i <= 49; i++){ 
      if(hochstes == null){ 
       hochstes = array[i]; 
       niedrig = hochstes; 
      } 
      if(array[i] > hochstes){ 
       hochstes = array[i]; 
      } 
      if(array[i] < niedrig){ 
       niedrig = array[i]; 
      } 

      q++; 
      if(q == 7){ 
       q = 0; 
       System.out.println(""); 
      }else{ 
       String a = (i < 10) ? " " + i : "" + i; 
       System.out.print(a + ": " + array[i] + " "); 
      } 

     } 

第4行中我尝试检查hochstes是否有值,如果没有,我将数组的第一个(“秒”)值赋给它!当然,它不会工作,以比较hochstesnull我应该使用什么,而不是谢谢!

+6

“int”总是有一个值,永远不会是“null”。 – rgettman

+0

我说了什么? '当然,它不会工作,以比较hochstes与null我应该使用,而不是谢谢! ' –

+1

在你的案例中初始化'hochstes'&'niedrig',其中第一个元素来自 –

回答

6

由于原始类型不能是null,所以您必须以另一种方式来看待它。

最简单的解决方案是简单地为循环外的第一个可能的值赋值,并从第二个值继续循环。

例如为:

int hochstes = array[0]; 

// Loop from 1 to higher 

正如Peter Lawrey正确备注:你在指数的指数1开始你的迭代是不一样的第一指标,记住这一点。许多(如果不是全部的话)数据结构是基于零的,这意味着它们从0开始,而不是1。这就是为什么你看到我分配array[0]获得第一个值。

+0

如果有第一个值或数组不为空,则可以使用。 –

+0

是的,这里隐含的假设是至少存在1个值。应在实际实施中添加检查以避免问题。 –

+3

OP似乎假定第一个元素也是'[1]'! –

0

Java中的值类型不能为null

你将不得不有一个单独的boolean变量,初始化为false。当您将值分配给hochstes时,也将您的布尔值设置为true。然后检查你的布尔值,看看这个值是否已经被初始化了。

对于这个特定的目的,你也可以初始化最大值/最小值变量的最小/最大可能值,分别为:

int hochstes = int.MIN_VALUE; 
int niedrig = int.MAX_VALUE; 

然后,您可以跳过条件语句完全。

+0

,代码为'int i;'我没有任何价值。它不是0,也不能操作。 int只会被赋值为0,如果它是一个实例 –

+0

@LoganMurphy谢谢,相应编辑;我正在考虑一种不同的语言。 – TypeIA

2

使用包装类

Integer hochstes = null; 

,你仍然可以进行正常的操作与像一个正常的INT hochstes(比较/设定值等)

4

可以使用定点值。最大限度地使用Integer.MIN_VALUE,最小使用Integer.MAX_VALUE。

int hochstes = Integer.MIN_VALUE; 
int niedrig = Integer.MAX_VALUE; 

for(int i : array) { 
    if(hochstes < i) hochstes = i; 
    if(niedrig > i) niedrig = i; 
} 

使用整数更昂贵,可以为数组的每个元素创建一个对象。

1

你应该总是初始化你的变量。为了解决这一点的一种方式可以是使用所述第一元件的阵列作为最大/最小元素:

int hochstes = array[0]; 
int niedrig = array[0]; 

其它方法是使用最小(或最大)可用值为您的变量初始化:

int hochstes = Integer.MIN_VALUE; 
int niedrig = Integer.MAX_VALUE; 
相关问题