繁体   English   中英

使用for循环获取静态add方法中的sum并将其返回给main方法

[英]Use a for loop to get sum in static add method and return it to main method

我在静态方法中无法正确实现for循环,因此我可以获得两个端点之间的偶数之和并将其和返回给main方法。 怎么做呢?

import java.util.Scanner;

public class Calculate {



public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);

    int num1, num2;

    System.out.print("Enter two integers: ");
    num1 = keyboard.nextInt();
    num2 = keyboard.nextInt();

    String input;
    System.out.println("Enter a string: ");
    input = keyboard.next();



    if(input.equals("add"))
    {
        while(num1%2==0 && num1<num2)
        {
            int sum;
            sum = add(num1, num2);
            System.out.print("The sum of two integers is: " + sum);
            System.exit(0);
        }
    }
    else if(input.equals("multiply"))
    {
        int product;
        product = multiply(num1, num2);
        System.out.print("The product of two integers is: " + product);
    }
    else
    {
        System.out.println("Error, invalid input!");
    }




}   
public static int add(int number1, int number2)
{
    for(add = 0, add > 0, ++add)
    {   
    int result;
    result = number1 + number2;
    return result;
    }
}
public static int multiply(int number1, int number2)
{
    int result;
    result = number1 * number2;
    return result;
}

}

为什么要使用循环等。 为什么不使用公式?

十个数字之和:

公式:N(N + 1)如何找到N =(第一个偶数+最后一个偶数)/ 2-1

例如:2 + 4 + 6 + ....... 100 N =(2 + 100)/ 2-1 = 50

前50个正偶整数的总和=(50)(51)= 2550

http://www.beatthegmat.com/formula-for-consecutive-even-odd-integers-t17241.html

您应该重写add()方法,这没有任何意义。 根据问题的描述,这是它的外观:

...因此我可以获得两个端点之间的偶数之和,并将其返回给main方法

public static int add(int number1, int number2) {
    int sum = 0;
    for (int i = number1; i <= number2; i++) {
        if (i % 2 == 0)
            sum += i;
    }
    return sum;
}

然后从main()调用它,如下所示:

if (input.equals("add")) {
    int sum = add(num1, num2);
    System.out.print("The sum of even numbers is: " + sum);
}

注意,应该避免调用System.exit(0) ,尤其不要在循环内调用它! 只需执行一次迭代即可退出程序。

add方法中for循环的问题是将add的值设置为零,然后检查add> 0。

基本上, for循环扩展如下:

for (int a=0; a<15; a++)
{
  //Do Something
}

成为

  int a = 0;
  while (a < 15) {
    //Do Something
    a++;
  }

因此,重写您的for循环,您将获得

int add=0;
while (add > 0) {
  int result;
  result = number1 + number2;
  return result;
  ++add;
}

现在,抛开return result;之类的问题return result; for循环中的位,或者为什么在这里甚至使用for循环,您至少可以看到您永远不会真正按照编写方式进入循环。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM