Как сделать, чтобы метод не запускался в операторе ifJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как сделать, чтобы метод не запускался в операторе if

Сообщение Anonymous »

Я знаю, что мой код не отформатирован. Я не хочу ничего с этим делать, пока не закончу с этой ошибкой. У меня есть основной файл с оператором if, в котором говорится
`

Код: Выделить всё

boolean indo=input1.getDate(true);
//input1.getSubject(true);
if(input1.getSubject(true)){
input1.getDate(true);
}else if(indo){
input1.getArray(true);
}

Когда у меня есть переменная indo, соответствующая вызову метода, она вызывает весь метод, а не просто присваивает возврат indo. Мне было интересно, можно ли как-нибудь настроить свой код так, чтобы indo равнялась оператору return вместо вызова самого метода.
Я ожидал, что переменная indo будет равна оператору return input1.getDate(истина); вместо вызова самого метода
дополнительно: при запуске indo=input1.getDate(true) выполняется весь метод. Я имею в виду, что он запускает этот метод:

Код: Выделить всё

public  boolean getDate(boolean into){
try{
input input1= new input(LocalDate.now());
// String name = "C:/Users/ajmer/OneDrive/Desktop/formation1/src/savedata.txt";
//String name = "D:/src/savedata.txt";
// String name = "E:/src/savedata.txt";
String name = "E://formation1//savedata.txt";
//D:\formation1/savedata.txt

long count= Files.lines(Paths.get(name)).count();
Scanner scanner= new Scanner(System.in);
Scanner readlines = new Scanner(name);
FileWriter savedata = new FileWriter(name, true);
PrintWriter writer = new PrintWriter(savedata);
Homework homework1= new Homework("empty","2024-08-24" );
//LocalDate.now()
System.out.println("Enter the due date of the homework: YYYY-MM-DD");

String dueDate= scanner.nextLine();
String date=dueDate;

//if(homework1.dueDate.equals("done")){

//date=dueDate;

homework1.dueDate=date;
//LocalDate.parse
while(homework1.dueDate!="done"){

writer.println(homework1.dueDate);
date =input1.unacceptableDate(date);
break;
}
if(date.equals("done")){
delete delete1= new delete(count, name);
delete1.deleting(count, name);
into = false;
while(true){

}

//System.exit(0);
}else{
}
writer.close();

}catch(IOException c){
c.printStackTrace();
System.err.println("Oops, something went wrong: " + c.getMessage());
}
return into;
}
Этот метод задает вопрос: «Введите дату сдачи домашнего задания: ГГГГ-ММ-ДД» и возвращает значение true или false в зависимости от ответа. Я хочу, чтобы переменная indo равнялась только оператору возврата, а не запускала этот метод или задавала этот вопрос. Надеюсь, это имеет смысл.
Операторы if в первом опубликованном коде гарантируют, что если вы напишете Done в любом из методов input1, параметр изменится на false и сделает так, что if утверждение ложно, и вопросы больше не задаются. Get subject задает вопрос: «Введите тему домашнего задания», а getarray имеет утверждение: «Введите части домашнего задания. Когда закончите, напишите «Готово».» первая часть общего кода по сути предотвращает задавание вопросов в методах input1, когда вы пишете «Готово». параметр изменяется на false, когда написано «Готово». Наконец, мне нужно, чтобы indo равнялось true или false и не вызывало метод input1.getDate(true)

Подробнее здесь: https://stackoverflow.com/questions/792 ... f-statment
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»