java - int low 和 int high 之间的数字之和; java

标签 java for-loop

我正在尝试用 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;
}

最佳答案

您有几个问题。

  1. 循环语法不正确。您不需要重新声明现有变量的类型。
  2. 您返回val而不是sum 。自 val作用域仅限于循环,这是一个编译错误。
  3. 你的循环提前结束了。它不包括最大值。要包含它,请使用 <=而不是< .

固定代码

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/

相关文章:

java - JSONArray 需要更高的 API 级别,但在同一类中使用没有问题

java - 如何在jsp中以表格格式打印二维数组

java - java中ArrayList转Hashset

java - 是否有一种算法可以删除某些与另一个相同的元素?

java - JTable 在列表中获取错误值

java - 向控制台输出一行 90 个等号,两边有空行

Java - for() 循环和数组

javascript - 理论上,这个 For-Loop 应该工作吗?

c - 如何知道尝试打开文件时是否有错误(在 C 中使用 fopen 时)

c - 这个 C for 循环如何打印文本艺术金字塔?