2016-03-08 60 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--)