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 tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
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