[英]Update a variable outside a loop from inside the loop
尝试创建一种方法来返回“n”以下的第一个数字,该数字可以完全除以第一个和第二个除数。 目前我的程序返回“答案”的默认值为 0,我希望在循环内计算的值在循环外被转换返回。 是的,我是初学者:(
static int highestNumberBelowNDivisibleByTwoNumbers(int firstDivisor, int secondDivisor, int n) {
int multipliedDivisors = firstDivisor * secondDivisor;
int answer = 0;
int remainder = 0;
for (int i = n; i <= 1; i--) {
remainder = multipliedDivisors / i;
if (remainder == 0){
answer = i;
break;
}
}
return answer;
}
根据您的描述:
尝试创建一种方法来返回“n”以下的第一个数字,该数字可以完全除以第一个和第二个除数。
使用% 运算符(余数/模数)尝试以下类似的操作:
static int highestNumberBelowNDivisibleByTwoNumbers(int firstDivisor, int secondDivisor, int n) {
while (n>0) {
if ((n % firstDivisor == 0) && (n % secondDivisor == 0)) {
return n;
}
n--;
}
return -1; // no answer found
}
你的代码
for (int i = n; i <= 1; i--) {
remainder = multipliedDivisors / i;
if (remainder == 0){
answer = i;
break;
}
将计数器从n
减少到 1。但是,除非余数为零,否则您的answer
不会更新。 如果从未满足该条件,则将返回n
的默认值(为零)。
问题? remainder = multipliedDivisors / i
remainder
何时为零?
因为这个赋值, int multipliedDivisors = firstDivisor * secondDivisor;
,仅当“除数”变量之一为零时。
重做你的逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.