[英]Compare input number to a value in an array
我編寫了一個程序來管理狗(狗窩,瑞典語)。
我可以添加一條狗,列出每條尾巴長度大於或等於給定長度的狗,刪除一條狗或停止程序。
我必須列出所有尋找尾巴長度的狗時遇到問題。
我程序中的方法稱為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
進行minstasvanslängd
。
if(HundLista.get(h).getTailLength()>minstasvanslängd){
其中getTailLength()
應該替換為返回狗尾巴長度的方法。
if(HundLista.get(h)>minstasvanslängd)
在這里,您嘗試將Hund
類型的對象與double
類型進行比較。 這應該是
if(HundLista.get(h).getSvansLängd() > minstasvanslängd)
前提是您在Hund
類中添加了一個getSvansLängd()
,如下所示:
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 double getSvansLängd() {
return HundSvansLängd;
}
}
if(HundLista.get(h)>minstasvanslängd){
HundLista.get(h)返回一個Hund對象,而minstasvanslängd是一個double,您不能使用基本運算符“>”比較對象和基本對象。 如果條件應為
if(HundLista.get(h).HundSvansLängd>minstasvanslängd){
假設HundSvansLängd是公開的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.