2014-09-12 2 views
0

Я пытаюсь создать простой двоично-десятичный конвертер для моего класса CS, чтобы получить немного дополнительного кредита. Мы используем Java только в моем классе, поэтому я делаю это на платформе Java. Я создал домашнюю страницу для вызова методов класса, чтобы облегчить мне, когда у меня есть несколько классов для уроков, которые я изучаю в классе CS. Я вызываю свой первый метод stringSplit, который принимает двоичное значение, заданное как аргумент, преобразует его в String, а затем использует .substring, чтобы разрезать его на каждый бит. Он устанавливает каждый бит в переменную для последующего анализа. Затем он проходит через мой метод bi2decFunctions. Это то, что я здесь:'If' и 'Else' не работает на Java?

public static void bi2decFunctions(String num128, String num64, String num32, String num16, String num8, String num4, String num2, String num1){ 
    int num128Return; 
    int num64Return; 
    int num32Return; 
    int num16Return; 
    int num8Return; 
    int num4Return; 
    int num2Return; 
    int num1Return; 

    System.out.println(" " + num128 + " " + num64 + " " + num32 + " " + num16 + " " + num8 + " " + num4 + " " + num2 + " " + num1); 
    //128 
    if(num128 == "1"){ 
     num128Return = 128; 
    } else { 
     num128Return = 0; 
    } 
    //64 
    if(num64 == "1"){ 
     num64Return = 64; 
    } else { 
     num64Return = 0; 
    } 
    //32 
    if(num32 == "1"){ 
     num32Return = 32; 
    } else { 
     num32Return = 0; 
    } 
    //16 
    if(num16 == "1"){ 
     num16Return = 16; 
    } else { 
     num16Return = 0; 
    } 
    //8 
    if(num8 == "1"){ 
     num8Return = 8; 
    } else { 
     num8Return = 0; 
    } 
    //4 
    if(num4 == "1"){ 
     num4Return = 4; 
    } else { 
     num4Return = 0; 
    } 
    //2 
    if(num2 == "1"){ 
     num2Return = 2; 
    } else { 
     num2Return = 0; 
    } 
    //1 
    if(num1 == "1"){ 
     num1Return = 1; 
    } else { 
     num1Return = 0; 
    } 
    System.out.println(" " + num128Return + " " + num64Return + " " + num32Return + " " + num16Return + " " + num8Return + " " + num4Return + " " + num2Return + " " + num1Return); 
    bi2decDisplay(num128, num64, num32, num16, num8, num4, num2, num1, num128Return, num64Return, num32Return, num16Return, 
      num8Return, num4Return, num2Return, num1Return); 
} 

Каждый раз, когда я запускаю это, правильные значения для моего 8-разрядного ввода появляется, но Num (1-128) возвращают переменные равны 0. «если» заявления даже не влияют на их результаты. У кого-нибудь есть идея?

Я также хотел бы представить это в моем классе CS, поэтому я хотел бы оценить масштаб 1-10 на аккуратность и качество моего кода.

+0

Вы можете попросить проверки кода на [Просмотр Кода] (http://codereview.stackexchange.com/). –

+0

Чтобы улучшить читаемость, я рекомендую использовать условные операторы. – Dici

ответ

4

Не сравнивать строки с ==, скажем, равна:

str1.equals(str2)