我无法在静态方法中获得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;
}
}
答案 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
循环等问题,你至少可以看到你永远不会实际上按照它的写入方式进入循环。