15. marts 2003 - 17:05
Der er
8 kommentarer og 1 løsning
Sammenligning af 2 objekter
public class TestAfstand{ public static void main (String[] args) { System.out.println( målAfstand("København", "London")); System.out.println( målAfstand("København", "Paris")); System.out.println( målAfstand("London", "København")); System.out.println( målAfstand("London", "Paris")); System.out.println( målAfstand("Paris", "København")); System.out.println( målAfstand("Paris", "London")); } public static int målAfstand (String a, String b) { int afstand; if ((a == "København") && (b == "London")); afstand = 5; if ((a == "København") && (b == "Paris")); afstand = 20; if ((a == "London") && (b == "København")); afstand = 5; if ((a == "London") && (b == "Paris")); afstand = 10; if ((a == "Paris") && (b == "København")); afstand = 20; if ((a == "Paris") && (b == "London")); afstand = 10; return afstand; } } Når jeg kører dette program var meningen at resultat skulle blive 5 20 5 10 20 5 men jeg får kun 10 taller. ændre jeg det sidste 10 til 11 får jeg kun 11 taller. I denne kode her bruger jeg som det kan ses Strings. Jeg har også prøvet at bruge .equals() istedet for ==. Jeg får inden compilerfejl. Desuden har jeg prøvet på samme måde at sammenligne objekter fra klasser med samme resultat --> at der ikke kom compilerfejl men at programmet kun udskrev det tal som står i den sidste if sætning. Nogle der kan fortælle mig hvad jeg gør galt og hvordan man burde lave sammenligningen? Hvad er det jeg ikke forstår!!!
Annonceindlæg fra Deloitte
15. marts 2003 - 17:07
#1
klam reklame, kunne de ikke have sat den ude i siden?
15. marts 2003 - 17:13
#2
Du skal bruge equals !
15. marts 2003 - 17:14
#3
Og du skal have slettet de semikolonner i linierne med if !
15. marts 2003 - 17:15
#4
if ((a == "Paris") && (b == "London")); afstand = 10; betyder: if betingelse opfyldt så gør ingenting; sæt afstand = 10 uanset hvad; Du mener: if (a.equals("Paris") && b.equals("London")) afstand = 10;
15. marts 2003 - 17:17
#5
public class TestAfstand{ public static void main (String[] args) { System.out.println( maalAfstand("København", "London")); System.out.println( maalAfstand("København", "Paris")); System.out.println( maalAfstand("London", "København")); System.out.println( maalAfstand("London", "Paris")); System.out.println( maalAfstand("Paris", "København")); System.out.println( maalAfstand("Paris", "London")); } public static int maalAfstand (String a, String b) { int afstand; if (a.equals("København") && b.equals("London")) afstand = 5; if (a.equals("København") && b.equals("Paris")) afstand = 20; if (a.equals("London") && b.equals("København")) afstand = 5; if (a.equals("London") && b.equals("Paris")) afstand = 10; if (a.equals("Paris") && b.equals("København")) afstand = 20; if (a.equals("Paris") && b.equals("London")) afstand = 10; return afstand; }
15. marts 2003 - 17:18
#6
Måske endda: public class TestAfstand { public static void main(String[] args) { System.out.println(målAfstand("København", "London")); System.out.println(målAfstand("København", "Paris")); System.out.println(målAfstand("London", "København")); System.out.println(målAfstand("London", "Paris")); System.out.println(målAfstand("Paris", "København")); System.out.println(målAfstand("Paris", "London")); } public static int målAfstand(String a, String b) { if (a.equals("København") && b.equals("London")) return 5; if (a.equals("København") && b.equals("Paris")) return 20; if (a.equals("London") && b.equals("København")) return 5; if (a.equals("London") && b.equals("Paris")) return 10; if (a.equals("Paris") && b.equals("København")) return 20; if (a.equals("Paris") && b.equals("London")) return 10; return -1; } }
15. marts 2003 - 17:18
#7
I Java er String et objekt, så du bliver først nødt til at finde objektets værdi før du kan sammenligne det med en værdi.
15. marts 2003 - 18:37
#8
Mange tak.
15. marts 2003 - 20:22
#9
Fedt...
Kurser inden for grundlæggende programmering