我正在尝试用 Java 创建代码,我知道这是错误的,但我需要一些帮助:
给定代表一个范围的两个整数 low 和 high,返回该范围内的整数之和。例如,如果 low 为 12,high 为 18,则返回值应为 12、13、14、15、16、17 和 18 之和,即 105。如果 low 大于 high,则返回 0。
我的解决方案是(我知道这是不对的,请不要谋杀我):
public int sumRange(int low, int high)
{
int sum = 0;
for (int val = int low; val < int high; val++)
sum += val;
return val;
}
最佳答案
您有几个问题。
- 循环语法不正确。您不需要重新声明现有变量的类型。
- 您返回
val
而不是sum
。自val
作用域仅限于循环,这是一个编译错误。 - 你的循环提前结束了。它不包括最大值。要包含它,请使用
<=
而不是<
.
固定代码
public class RangeTest1 {
public static void main(String[] args){
System.out.println(sumRange(12, 18)); // prints 105
System.out.println(sumRange(18, 12)); // prints 0
System.out.println(sumRange(18, 18)); // prints 18
}
public static int sumRange(int low, int high)
{
int sum = 0;
for (int val = low; val <= high; val++){
sum += val;
}
return sum;
}
}
如果 low
则得到 0大于high
免费,因为如果是这种情况,循环永远不会运行任何迭代。初始值 0 保留并返回。
关于java - int low 和 int high 之间的数字之和; java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52731214/