我试图从用户那里得到四个输入,并尝试仅使用用户定义的方法找到等于素数的对。我还没到达最佳状态。但在那之前我遇到了一个问题。因此,检查总和我是否在名为sumPair6的方法中将其打印出来但它打印为零,因此总和为所有内容返回0。我不知道我在做什么错。我也摆脱了最初的0,但仍然没有工作
<form action="/apply-now/" enctype="multipart/form-data" id="applyForm" method="post" name="applyForm" class="form">
<input name="is_data_submitted" type="hidden" value="1">
<input name="listing_id" type="hidden" value="{$listing_id}">
MY FORM DATA
<button type="submit" id="submit" class="btn btn-warning">Apply now</button>
答案 0 :(得分:0)
请注意,您正在打印sum1
,这是在您打印时未设置的,它会重新调整默认值为0的值,快速修复是为了引用您在方法中求和的那个,但另一个修复就像我将在这里提出的那样做
要修复此代码,请执行类似
的操作public static void main(String args[]) {
input();
sum1 = sumPair(num1, num2);
sum2 = sumPair(num1, num3);
sum3 = sumPair(num1, num4);
sum4 = sumPair(num2, num3);
sum5 = sumPair(num2, num4);
sum6 = sumPair(num3, num4);
// Prime(sum1,sum2,sum3,sum4,sum5,sum6,val1,stop);
}
然后
public static int sumPair(int num1, int num2) { // returns a sum of 2 numers
return num1 + num2;
}
这是因为你总是添加2个整数,因此不需要超过1个函数。
<强>附加强>
重写了大部分类,使其更易于阅读和使用
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Prime {
public static List<Integer> numbers = new ArrayList<>(); // a list of integers that was accepted, can be acced in the order they were added
private static Scanner input = new Scanner(System.in);
public static void main(String args[]) {
int inputs = 4; // inputs wanted
input(inputs); // gives the method the inputs wanted
for(int i = 0; i < inputs; i++){ // for every entry in the list (notice that we add to the list in the input()
for(int j = 0+i; j < inputs; j++) // again for every element (to sum all numbers), notice +i to prevent duplicates
{
if(i != j) // if the numbers aren't the same entry
// print the number returned from the sum function
System.out.println("sum of " + numbers.get(i)+ " and " + numbers.get(j) + ": " + sumPair(numbers.get(i), numbers.get(j)));
}
}
}
public static void input(int inputNumbers) {
while(numbers.size() < inputNumbers){ // while there is more inputs needed
System.out.print("Enter a positive integer: ");
int num = input.nextInt();
if(num > 0) // if the input is valid
numbers.add(num);
else // if the input is not valid
while (num <= 0) { // while the input is not valid
System.out.print("Enter a positive integer: ");
num = input.nextInt(); // get the next int if it wasn't valid
if(num > 0) { // if the input gets valid
numbers.add(num);
}
}
System.out.println("Thank you.");
}
}
public static int sumPair(int num1, int num2) { // sums 2 integers given to the method and returns the sum
return num1 + num2;
}
}
现在这不是一个完美的类,它只是简化了一些,但它应该告诉你如何搜索一个范围,以及如何重用一个函数,如果你有问题请在下面的评论中
输入1,2,3,4将打印
1和2:3的总和
1和3:4的总和
1和4:5的总和
2和3:5之和
2和4:6的总和
3和4:7的总和
答案 1 :(得分:0)
变量的范围仅在特定方法中。在input()中,你接受用户输入并将它们分配给你的变量,但是一旦执行线程从输入中输出,你的变量num1,num2等都有相同的预定义值(全0)。
您可以通过多种方式重新设计代码。一种简单的方法是从input()方法中调用sumpair方法,因此您只需要一个sumpair方法,它可以采用不同的num值。