首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我该如何修复这段代码?(if-语句)

我该如何修复这段代码?(if-语句)
EN

Stack Overflow用户
提问于 2013-06-08 22:55:15
回答 1查看 119关注 0票数 2

我正在上一个Java初学者的课程。我不确定如何存储每个if语句的变量。下面是我的代码:

代码语言:javascript
运行
复制
    // 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位数或1位数的first/second/third/数字。根据数字的位数不同,数字的总和也会不同。我想在最后把这些数字加起来。我如何存储每个变量中的值,以便即使在if语句之后也可以使用它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-08 23:01:42

当你这样做的时候:

代码语言:javascript
运行
复制
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无关),则将输入该值。

你应该这样做:

代码语言:javascript
运行
复制
if (oneeven < 10){
     evensum1 = oneeven;
} else { ... //Note that it's redundant to write oneeven >= 10 

(对rest if语句执行此操作)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17000733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档