2016-03-08 58 views
-4

我想在java中制作一个二进制转换器。但是我在for循环中出现错误,提示“类型不匹配:无法从int转换为布尔值”。我在网上查找并正在做它告诉我要做的事情。 这是我的代码。for循环不工作在java

import java.util.Scanner; 
class hsdgsd{ 
    public static void main(String[] args){ 
     int[] count = {1,2,4,8,16,32,64,128}; 
     int[] binary; 
     int[] binarynew; 
     binary = new int[8]; 
     binarynew = new int[8]; 
     Scanner in = new Scanner(System.in); 
     int num = in.nextInt(); 
     System.out.println(num); 
     if (num <= 255){ 
      for (int i=8; i=0; i--) 
      { 
       if(num >= count[i]){ 

       } 
      } 
     } 
    } 
} 
+2

更换'I = 0'不是布尔值。也许你的意思是i> = 0 – Eran

回答

5

您的for循环正在做它应该做的事,但是您编码错了。

for (int i=8; i=0; i--) 

这里你说:i = 8和:perform while (set i to 0) 这是没有意义的。

将其更改为:

for (int i=8; i>0; i--) 

编辑:作为T.J.指出,你有一个8个元素的数组,意味着最大可能的索引是7(array.size - 1)。

要正常工作,它应该是:

for (int i = 7; i >= 0; i--) 
+1

'i> 0'会错过第0个元素。对于这个问题,从8开始会在第一次传递时导致一个'ArrayIndexOutOfBoundsException'。 –

+0

你说得对。我基于自己的问题循环。 – Stultuske

0

for (int i=8; i=0; i--)是不正确的,要设置i的值再次为零

for (int i=8; i>0; i--)