Java 将循环的结果用于另一个循环

Java 将循环的结果用于另一个循环,java,math,Java,Math,我不得不说对不起,因为我知道这是一个很愚蠢的问题(我刚开始学习java),但是我怎样才能将“while”循环结果用于另一个循环呢?我需要准备一个将两个给定数字相加的程序。首先,我需要添加number1中的数字,然后添加number2中的数字,并在这两个数字的末尾加和sum1和sum2运行得很好,但在这一点上,sum3和循环nr3中的操作对我的机器是不可见的 我认为我应该以某种方式将其组合成一个循环,但我不知道如何组合(我从霍斯特曼和卡德黑德的书中学习,没有好的答案) 谢谢您的回答,如果不是直接的

我不得不说对不起,因为我知道这是一个很愚蠢的问题(我刚开始学习java),但是我怎样才能将“while”循环结果用于另一个循环呢?我需要准备一个将两个给定数字相加的程序。首先,我需要添加
number1
中的数字,然后添加
number2
中的数字,并在这两个数字的末尾加和
sum1
sum2
运行得很好,但在这一点上,
sum3
和循环
nr3
中的操作对我的机器是不可见的

我认为我应该以某种方式将其组合成一个循环,但我不知道如何组合(我从霍斯特曼和卡德黑德的书中学习,没有好的答案)

谢谢您的回答,如果不是直接的代码升级,我会很高兴,但可能会有一些提示我应该在哪里或什么地方搜索!谢谢:) 我有这样的想法:

public static void main(String[] args) {
    int sum1 = 0;
    int sum2 = 0;
    int sum3 = 0;
    Scanner scn = new Scanner(System.in);
    System.out.println("1 : ");
    int l1 = scn.nextInt();
    System.out.println("2 : ");
    int l2 = scn.nextInt();
    System.out.println((0 > l1 || 0 > l2 ? "ERROR-NEGATIVE NUMBER" : "OK"));
    while (l1 > 0) {
        sum1 += l1 % 10;
        l1 /= 10;
    }
    //System.out.println(sum1);
    while (l2 > 0) {
        sum2 += l2 % 10;
        l2 /= 10;
    }
    //System.out.println(sum2);
    while (sum1+sum2>0) {
        sum3 +=(sum1+sum2) %10;
        (sum1+sum2) /=10;
    }

}

主要问题是
/=
运算符的结果应该存储在某个地方,sum1+sum2的结果不提供这种存储

要使此代码正常工作,您需要将sum1+sum2存储到某个临时变量中,因此替换

while (sum1+sum2>0) {
    sum3 +=(sum1+sum2) %10;
    (sum1+sum2) /=10;
}
比如:

int tempsum = sum1 + sum2;
while (tempsum > 0) {
    sum3 += tempsum % 10;
    tempsum /= 10;
}

最好的方法是为此目的使用一种方法并重用它:

public static void main(String[] args) {
    int sum3 = 0;
    Scanner scn = new Scanner(System.in);
    System.out.println("1 : ");
    int l1 = scn.nextInt();
    System.out.println("2 : ");
    int l2 = scn.nextInt();
    System.out.println((0 > l1 || 0 > l2 ? "ERROR-NEGATIVE NUMBER" : "OK"));
    sum3 = addDigit(addDigit(l1)+addDigit(l2))

}

private static int addDigit(int number){
    int sum = 0;
    while (number > 0) {
        sum += number % 10;
        number /= 10;
    }
    return sum;
}

最后一个while循环应该是
sum3=sum1+sum2(除非我遗漏了什么)。您是否考虑过创建一个方法来添加
int
中的数字?这只是我的观点,但是
int l1
应该是非法的变量名。这太容易被视为
11
ll
,最好使用其他东西;如果您想要一个简短的名称,请使用
t
i
j
a
,等等。使用两个字母是可以的,但至少可以选择一些可读的组合(我可以想象一个包含
ll1
l11
的大型程序,所以请不要这样做)。谢谢,名称已修复-我很欣赏在我心目中成长起来的每一件事—良好的编程实践:)@AdamK那么您还应该阅读Java命名约定。它们的引入是为了帮助您保持代码整洁。
addDigit
应该是
静态的
,但原则上同意。
main
之后的额外闭合撑杆。请修正缩进<代码>整数和=0(输入错误)。@ElliottFrisch你完全正确!修正了;)谢谢你的反馈