我该如何修复此代码? (if语句)

时间:2013-06-08 14:55:15

标签: java string if-statement

我正在做初学Java课程。我不确定如何为每个if语句存储变量。这就是我的代码:

    // Variables for the final sum of all even numbers
    int evensum1,evensum2,evensum3,evensum4;
    if (oneeven < 10){
        evensum1 = oneeven;
    }
    if (twoeven < 10){     
        evensum2 = twoeven;
    }
    if (threeeven < 10){    
        evensum3 = threeeven;
    }
    if (foureven < 10){    
        evensum4 = foureven;
    }

    // Determine if the digits have 2 characters (>= 10); if yes, separate them
    else if (oneeven >= 10){
    // Convert each multiplied number to a string to separate them again        
        String char1even = "" + oneeven;
        char sep11 = char1even.charAt(0);
        char sep12 = char1even.charAt(1);
        int val11 = Character.getNumericValue(sep11);
        int val12 = Character.getNumericValue(sep12);
        evensum1 = val11 + val12;
    }
    else if (twoeven >= 10){
        String char2even = "" + twoeven;
        char sep21 = char2even.charAt(0);
        char sep22 = char2even.charAt(1);
        int val21 = Character.getNumericValue(sep21);
        int val22 = Character.getNumericValue(sep22);
        evensum2 = val21 + val22;
    }
    else if (threeeven >= 10){
        String char3even = "" + threeeven;
        char sep31 = char3even.charAt(0);
        char sep32 = char3even.charAt(1);
        int val31 = Character.getNumericValue(sep31);
        int val32 = Character.getNumericValue(sep32);
        evensum3 = val31 + val32;
    }   
    else if (foureven >= 10){
        String char4even = "" + twoeven;
        char sep41 = char4even.charAt(0);
        char sep42 = char4even.charAt(1);
        int val41 = Character.getNumericValue(sep41);
        int val42 = Character.getNumericValue(sep42);
        evensum4 = val41 + val42;
    }

    // Add the separate even digits together
    int finevensum = evensum1 + evensum2 + evensum3 + evensum4;
    System.out.println(finevensum);

我在最后一行遇到麻烦。我想要做的是获得一个2位OR 1位第一/第二/第三/数字。根据数字的位数,数字的总和将不同。我想在最后添加数字。 如何将值存储在每个变量中,以便即使在if语句之后也可以使用它们?

1 个答案:

答案 0 :(得分:3)

当你这样做时:

if (foureven < 10){    
        evensum4 = foureven;
}

// Determine if the digits have 2 characters (>= 10); if yes, separate them
else if (oneeven >= 10){

然后else引用最后 if。因此,如果foureven < 10(无论oneeven),都会输入。

你应该做那样的事情:

if (oneeven < 10){
     evensum1 = oneeven;
} else { ... //Note that it's redundant to write oneeven >= 10 

(对其余if语句执行此操作)