2016-09-22 58 views
-1

我對java非常陌生,只是想更好地理解一些東西。幾個小時前我就想出了一點這個java。感謝您的任何建議。 我需要想出如何,如果他們== 1至另一種方法來計算總數連接變量的Java錯誤

實施例基本上取int值在if語句

1111111111111111將= 32768 + 16384 + 8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1

需要有可以抓住那些值和ADD的方法。 已經搞亂了一兩個小時,試圖破解它。

與代碼只是插科打諢,這是所有

package binChange; 

import java.util.Scanner; 

public class binChange { 

    public static void main(String args[]) { 
     Scanner input = new Scanner(System.in); 
     System.out.println("Enter in only 1 and 0 and click enter for each time"); 
     int bin1 = input.nextInt(); 
     int bin2 = input.nextInt(); 
     int bin3 = input.nextInt(); 
     int bin4 = input.nextInt(); 
     int bin5 = input.nextInt(); 
     int bin6 = input.nextInt(); 
     int bin7 = input.nextInt(); 
     int bin8 = input.nextInt(); 
     int bin9 = input.nextInt(); 
     int bin10 = input.nextInt(); 
     int bin11 = input.nextInt(); 
     int bin12 = input.nextInt(); 
     int bin13 = input.nextInt(); 
     int bin14 = input.nextInt(); 
     int bin15 = input.nextInt(); 
     int bin16 = input.nextInt(); 

     if (bin16 == 1) { 
      System.out.println(32768); 
      int abin = 32768; 

     } else { 
      System.out.println(0); 
      int abino = 0; 
     } 
     if (bin15 == 1) { 
      System.out.println(16384); 
      int bbin = 16384; 
     } else { 
      System.out.println(0); 
      int bbinO = 0; 
     } 
     if (bin14 == 1) { 
      System.out.println(8192); 
      int cbin = 8192; 
     } else { 
      System.out.println(0); 
      int cbino = 0; 
     } 
     if (bin13 == 1) { 
      System.out.println(4096); 
      int dbin = 4096; 
     } else { 
      System.out.println(0); 
      int dbino = 0; 
     } 
     if (bin12 == 1) { 
      System.out.println(2048); 
      int ebin = 2048; 
     } else { 
      System.out.println(0); 
      int ebino = 0; 
     } 
     if (bin11 == 1) { 
      System.out.println(1024); 
      int fbin = 1024; 
     } else { 
      System.out.println(0); 
      int fbino = 0; 
     } 
     if (bin10 == 1) { 
      System.out.println(512); 
      int gbin = 512; 
     } else { 
      System.out.println(0); 
      int gbino = 0; 
     } 
     if (bin9 == 1) { 
      System.out.println(256); 
      int hbin = 256; 
     } else { 
      System.out.println(0); 
      int hbino = 0; 
     } 
     if (bin8 == 1) { 
      System.out.println(128); 
      int ibin = 128; 
     } else { 
      System.out.println(0); 
      int ibino = 0; 
     } 
     if (bin7 == 1) { 
      System.out.println(64); 
      int jbin = 64; 
     } else { 
      System.out.println(0); 
      int jbino = 0; 
     } 
     if (bin6 == 1) { 
      System.out.println(32); 
      int kbin = 32; 
     } else { 
      System.out.println(0); 
      int kbino = 0; 
     } 
     if (bin5 == 1) { 
      System.out.println(16); 
      int lbin = 16; 
     } else { 
      System.out.println(0); 
      int lbino = 0; 
     } 
     if (bin4 == 1) { 
      System.out.println(8); 
      int mbin = 8; 
     } else { 
      System.out.println(0); 
      int mbino = 0; 
     } 
     if (bin3 == 1) { 
      System.out.println(4); 
      int nbin = 4; 
     } else { 
      System.out.println(0); 
      int nbino = 0; 
     } 
     if (bin2 == 1) { 
      System.out.println(2); 
      int obin = 2; 
     } else { 
      System.out.println(0); 
      int obino = 0; 
     } 
     if (bin1 == 1) { 
      System.out.println(1); 
      int pbin = 1; 
     } else { 
      System.out.println(0); 
      int pbino = 0; 
     } 

    } 

} 
+0

你在這裏已經產生了很多代碼。你知道如何創建/使用'loop'嗎? – MaxZoom

+0

是啊..但也想知道是否有可能獲取int的每個不同的if語句 – JonathanS

回答

-2

創建一個整型變量,而用零初始化。只要滿足條件就添加值。

int sum = 0;//Declare before first `if` statement. 

使用下面這段代碼做的,只要條件在if statements.For例如遇到了另外:

if (bin16 == 1){ 
    System.out.println(32768); 
    //int abin = 32768;//you might not need this statement. 
    sum = sum + 32768;//This 

} 

所以在節目的最後,總和可以通過調用來檢索變量sum。例如

System.out.println("Total sum = "+sum); 
+0

謝謝:)它的工作 – JonathanS

+0

不是甚至是對投票的評論? –

1

您可以通過一個可變sum,並保持運行總的值加在一起。

使用循環的重複代碼:

import java.util.Scanner; 

public class BinChange { 
    public static void main(String args[]){ 
     Scanner input = new Scanner(System.in); 
     System.out.println("Enter in only 1 and 0 and click enter for each time"); 

     int[] bits = new int[16]; 
     for (int i = bits.length - 1; i >= 0; i--) { 
      bits[i] = input.nextInt(); 
     } 

     int sum = 0; 
     for (int i = bits.length - 1; i >= 0; i--) { 
      int value = bits[i] << i; 
      System.out.println(value); 
      sum += value; 
     } 

     System.out.println("The value is: " + sum); 
    } 
} 

Ideone Demo

+0

謝謝你的建議..我現在想辦法如何最小化代碼。:) – JonathanS