Итак, я сейчас беру курс по Java, и задача состоит в том, чтобы вызвать определенные методы из основного метода и заставить их выполнить, а затем передать их вывод основному методу. Все работает нормально, за исключением того, что по какой-то причине пользовательские входы не обновляются. У меня есть два отдельных класса, которые запрашивают пользовательский ввод, и если пользовательский ввод ниже нуля, они должны повторно ввести число до нуля, прежде чем продолжить. Даже если они вводят несколько чисел, а числа выше нуля, поэтому он возвращает значение, он всегда возвращает только первый введенный ими ввод, а не правильный. Любое понимание этого ребята? Впервые задаю вопрос здесь, так что я действительно не знаю, нарушил ли я какое-либо форматирование или еще что-то. Любая помощь приветствуется.
Код, который я публикую, не является моим реальным кодом для класса, это просто отдельная программа, которую я создал, которая демонстрирует проблему, и может использоваться для исправления моего основного кода. Это просто сокращает многие бесполезные вещи.
import java.util.Scanner;
public class tezsters {
public static double test(double test1) {
Scanner scanner=new Scanner(System.in);
while(test1<=0) {
System.out.println("Test one must be above zero, please reenter");
test1 = Double.parseDouble(scanner.nextLine());
System.out.println(test1);// this line is just here to test if the user input was being assigned to test1, which it was.
if(test1>0) {
return test1;
}
}
return test1;
}
public static double tests(double test2) {
Scanner scanner = new Scanner(System.in);
while (test2 <= 0) {
System.out.println("Test two must be above zero, please reenter");
test2 = Double.parseDouble(scanner.nextLine());
System.out.println(test2);
if (test2 > 0) {
return test2;
}
}
return test2;
}
public static double display(double test1, double test2){
System.out.println("if test 1 is " + test1);
System.out.println("Then test 2 is " + test2);
return test1;
}
public static void main (String [] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("Enter test 1 value");
double test1 = Double.parseDouble(scanner.nextLine());
test(test1);
System.out.println("Enter test 2 value");
double test2 = Double.parseDouble(scanner.nextLine());
tests(test2);
display(test1,test2);
}
}