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

时间:2013-09-23 15:37:57

标签: java for-loop static-methods

我无法在静态方法中获得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;
}

}

3 个答案:

答案 0 :(得分:2)

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

  

偶数的总和:

     

公式: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

答案 1 :(得分:1)

你应该重写add()方法,它没有意义。根据问题中的描述,这应该是它的样子:

  

...所以我可以得到两个端点之间的偶数之和并将总和返回给主方法

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),特别是不要在循环内调用它!它只会在一次迭代后退出程序。

答案 2 :(得分:0)

for方法中add循环的问题在于您将add的值设置为零,然后检查是否添加&gt; 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;循环中的for位以及为什么你甚至在这里使用for循环等问题,你至少可以看到你永远不会实际上按照它的写入方式进入循环。