[英]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.