删除航班的方法
此处当独写的一个方法来检测输入的数是否符合要求,若不符合要求,则重新输入。
首先我想把它写在delete_flight方法体中,但是当我把变量id封装到for循环中后,for循环的外部就无法接受到此id的值,因此我想到了用一个方法体来封住这个检测输入数据的方法,并将符合的数据作为返回值返回它。
int test(ArrayList<AirInfo> arrayList){
Scanner in=new Scanner(System.in);
for(int i=1;i>0;i++){
int id=in.nextInt();
if(id<=arrayList.size()){
return id;}
else{
System.out.print("查询的航班编号不存在,请重新输入航班编号");}
}
return 0;
}
public void delete_flight(ArrayList<AirInfo> flight){
System.out.print("请输入需要删除的航班编号:");
Scanner in=new Scanner(System.in);
List delList = new ArrayList();
int id=test(flight);
for(AirInfo e:flight)
{
if(e.getId()==(id))
delList.add(e);
}
flight.removeAll(delList);
System.out.println("删除成功!");
}
从上面可以总结出一个方法体(输入指定区间的数,不然重新输入,直至该数符合要求时[ps:仅限于console端输入]):
import java.util.Scanner;
public class ConditionalOperator {
static int test(){
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数字: ");
for(int i=1;i>0;i++){
int inputedNumber =scanner.nextInt();
if( inputedNumber%2 != 0) {
System.out.println("输入的是为奇数" );
return inputedNumber;
}else{
System.out.print("输入的不是奇数,请重新输入数字: ");
}
}
return 0;
}
public static void main(String[]args) {
System.out.println(test());
}
}