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