gpt4 book ai didi

java - 将输入数字与数组中的值进行比较

转载 作者:行者123 更新时间:2023-12-01 12:10:24 26 4
gpt4 key购买 nike

我编写了一个程序来管理狗舍(瑞典语)。
我让它可以添加一只狗,列出每只尾部长度大于或等于给定长度的狗,删除狗或停止程序。
当我必须列出所有寻找尾部长度的狗时,我遇到了问题。
我的程序中的方法称为listaHundarna(),我询问要搜索的最小尾部长度。 if 语句给了我一个我无法解决的错误。

有人可以帮我吗?

第一个类是狗 (Hund),第二个类是狗磅类 (Kennel)。

猎犬:

public class Hund {

private String HundNamn;
private String HundRas;
private int HundÅlder;
private double HundVikt;
private double HundSvansLängd;
private String tax = "tax";

Hund(String namn, String ras, int ålder, double vikt, double svans){ //Skapa hundmetod som tar emot datan från super/main-klassen (Kennel.java);
HundNamn = namn;
HundRas = ras;
HundÅlder = ålder;
HundVikt = vikt;
HundSvansLängd = svans;
}


public String toString() {
return HundNamn+" "+HundRas+" "+HundÅlder+" years old "+HundVikt+" kg "+"tail lenght= "+HundSvansLängd;
}

public String getNamn() {
return HundNamn;
}


}

狗舍:

public class Kennel {

static ArrayList<Hund> HundLista= new ArrayList<Hund>();
private static Scanner tangentbord = new Scanner(System.in);

private static int val(String tal) {
System.out.print(tal);
return tangentbord.nextInt();
}


private static void kör() {
for (;;) {
Meny();
switch (välja()) {
case 1:
läggTillHund();
break;
case 2:
listaHundarna();
break;
case 3:
taBortHund();
break;
case 4:
avsluta();
return;
}
}
}

private static void Meny() {
System.out.println("Tryck 1 för att lägga till en hund");
System.out.println("Tryck 2 för att lista hundarna");
System.out.println("Tryck 3 för att ta bort en hund");
System.out.println("Tryck 4 för att avsluta programmet");
}

private static int välja() {
return val("> ");
}

public static void läggTillHund(){
Scanner sc=new Scanner (System.in);
System.out.println("Hundens namn:");
String namn = sc.nextLine();
System.out.println("Hundens ras: ");
String ras = sc.nextLine();
System.out.println("Hundens ålder: ");
int ålder=sc.nextInt();
System.out.println("Hundens vikt: ");
double vikt=sc.nextDouble();
String tax = "tax";
double svans;
if (ras.equals(tax)) {
svans = 3.7;
}
else {
svans = (ålder*vikt)/10;
}
System.out.println("Hundens svans är "+svans+"cm lång");
Hund nyhund = new Hund(namn, ras, ålder, vikt, svans);
HundLista.add(nyhund);
}


public static void listaHundarna(){
Scanner sc=new Scanner(System.in);
System.out.println("Ange svanslängd:");
double minstasvanslängd=sc.nextDouble();
int h=0;
while(h<HundLista.size()){
if(HundLista.get(h)>minstasvanslängd){
System.out.println(HundLista.get(h));
}
}
}

public static void taBortHund(){
Scanner sc=new Scanner(System.in);
System.out.println("Ange hundens namn:");
String radera= sc.nextLine();
for(int x=0;x<HundLista.size();x++){
if (HundLista.get(x).equals(radera)){
HundLista.remove(x);
System.out.println("Hunden har tagits bort");
}
else{
System.out.println("Hundens namn är inte korrekt");
}


}
}

public static void avsluta(){
System.out.println("Programmet avslutas");

}

public static void main(String[] args) {
kör();
avsluta();
}

}

最佳答案

您正在尝试将 Hund 对象与 double 变量进行比较:

if(HundLista.get(h)>minstasvanslängd){

您应该将 Hund 对象的相关属性与 minstasvanslängd 进行比较。

if(HundLista.get(h).getTailLength()>minstasvanslängd){

其中 getTailLength() 应替换为返回狗尾部长度的方法。

关于java - 将输入数字与数组中的值进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27311979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com