Avatar billede kamak Praktikant
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!!!
Avatar billede kamak Praktikant
15. marts 2003 - 17:07 #1
klam reklame, kunne de ikke have sat den ude i siden?
Avatar billede arne_v Ekspert
15. marts 2003 - 17:13 #2
Du skal bruge equals !
Avatar billede arne_v Ekspert
15. marts 2003 - 17:14 #3
Og du skal have slettet de semikolonner i linierne med if !
Avatar billede arne_v Ekspert
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;
Avatar billede viciodk Praktikant
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;
}
Avatar billede arne_v Ekspert
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;
    }
}
Avatar billede viciodk Praktikant
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.
Avatar billede kamak Praktikant
15. marts 2003 - 18:37 #8
Mange tak.
Avatar billede viciodk Praktikant
15. marts 2003 - 20:22 #9
Fedt...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester