Avatar billede mads375 Juniormester
08. december 2013 - 12:09 Der er 13 kommentarer og
2 løsninger

if sætning

Hejsa.

Jeg sidder lige og leger med ArrayList og prøver at få det til at fungere. Det er ren leg, så der er ikke nogen pointe med det. Jeg har følgende klasser:

public class Index {
    public static void main(String[]args) {
       
        Test t = new Test();
        Loop l = new Loop();
       
        t.addPerson();
        t.addNumbers();
        t.addSingleNumbers();
        l.loopCounter();
       
    }
}

____

import java.util.ArrayList;

public class Test {
   
    private ArrayList<String> persons;
    private ArrayList<Double> numbers;
    private ArrayList<Integer> singlenumbers;

    public Test() {
        persons = new ArrayList<String>();
        numbers = new ArrayList<Double>();
        singlenumbers = new ArrayList<Integer>();
    }
   
    public void addPerson() {
        persons.add("Mads");
        persons.add("Neka");
   
        System.out.println(persons);
    }
   
    public void removePerson() {
        persons.remove(persons);
    }
   
    public void addNumbers() {
        numbers.add(1.2);
        numbers.add(2.2);
        numbers.add(3.3);
       
        System.out.println(numbers);
    }
   
    public void addSingleNumbers() {
        singlenumbers.add(1);
        singlenumbers.add(2);
        singlenumbers.add(3);
       
        System.out.println(singlenumbers);
    }
}
____

public class Loop {
   
    public void loopCounter() {
    for(int counter=1; counter < 10; counter++) {
        System.out.println(counter);
    }
   
    if(persons == Mads) {
       
    }
    }
}

I klassen loop vil jeg gerne lave noget med at hvis persons == Mads, så skal det fx ændres til Michael. Jeg tænker man kunne lave en if sætning, men kan ikke helt komme videre med det? Endvidere vil jeg også gerne prøve at programmere removePerson, men jeg ved ikke helt hvad meningen er med det? Altså hvad kan man med removePerson? Altså fjerne en person går jeg ud fra, men kan det være fx en if sætning inde i den?

Mvh Mads
Avatar billede arne_v Ekspert
08. december 2013 - 14:56 #1
if(persons == Mads) {

skal nok vaere:

if(persons.get(i).equals("Mads")) {
Avatar billede arne_v Ekspert
08. december 2013 - 14:56 #2
i en klasse som har persons
Avatar billede arne_v Ekspert
08. december 2013 - 14:57 #3
public void removePerson() {
        persons.remove(persons);
}

tror jeg er forkert - du forsoeger at fjerne listen fra den selv!
Avatar billede mads375 Juniormester
10. december 2013 - 11:33 #4
Hvis jeg nu skriver sådan her:

if(Test.get(persons).equals("Mads")) {
       
    }

Så forstår jeg det sådan at hvis i klassen Test skal den hente feltvariablen og tjekke om der er en Mads deri. Er det helt forkert forstået?

import java.util.ArrayList;

public class Test {
   
    private ArrayList<String> persons;
    private ArrayList<Double> numbers;
    private ArrayList<Integer> singlenumbers;

    public Test() {
        persons = new ArrayList<String>();
        numbers = new ArrayList<Double>();
        singlenumbers = new ArrayList<Integer>();
    }
   
    public void addPerson() {
        persons.add("Mads");
        persons.add("Neka er sød");
   
        System.out.println(persons);
    }
   
    public void removePerson() {
        persons.remove(persons);
    }
   
    public void addNumbers() {
        numbers.add(1.2);
        numbers.add(2.2);
        numbers.add(3.3);
       
        System.out.println(numbers);
    }
   
    public void addSingleNumbers() {
        singlenumbers.add(1);
        singlenumbers.add(2);
        singlenumbers.add(3);
       
        System.out.println(singlenumbers);
       
    }
   
}
Avatar billede mads375 Juniormester
10. december 2013 - 12:06 #5
Har prøvet at lave dette:

public void getPerson() {
    if(Test.get(persons).equals("Mads")) {
        return(persons);
    }
}

Men får disse fejl hvor jeg har skrevet "void":

Multiple markers at this line
    - Syntax error, insert "EnumBody" to complete BlockStatement
    - Syntax error on token "void", @ expected
    - Syntax error, insert "enum Identifier" to complete
    EnumHeaderName
Avatar billede MADOlsen Forsker
10. december 2013 - 12:41 #6
Void viser, at funktionen ikke returnerer noget, hvilket jo ikke er korrekt.

public void getPerson()

skal derfor ændres til

public String getPerson()

da den jo skal returnere en String.
Avatar billede mads375 Juniormester
10. december 2013 - 12:48 #7
Hej fedeko. Mange tak for svaret. Jeg kan godt se det med String. Jeg prøvede lige at lave med String istedet for, men får samme fejl. Skal jeg have en parameter på?

public String getPerson() {
    if(Test.get(persons).equals("Mads")) {
        return(persons);
    }
    }
Avatar billede MADOlsen Forsker
10. december 2013 - 12:59 #8
For at finde ud af, om "Mads" findes i din ArrayList, er du nødt til at tjekke hver enkelt string i listen:

public String getPerson() {
    for(int i = 0; i < persons.size(); i++) {
        if(persons.get(i).equals("Mads")) {
            return persons.get(i);
        }
    }
}

Er lidt (/meget) rusten i Java, så tør dog ikke garantere, at det ikke kan laves  mere elegant.
Avatar billede arne_v Ekspert
10. december 2013 - 20:50 #9
Man kunne pynte en lille smule med den nye for loekke og haandtere ingen match:

public String getPerson() {
    for(String p : persons) {
        if(p.equals("Mads")) {
            return p;
        }
    }
    return null;
}
Avatar billede arne_v Ekspert
10. december 2013 - 20:51 #10
persons.contains("Mads") kunne maaske ogsaa bruges til noget
Avatar billede mads375 Juniormester
13. december 2013 - 14:19 #11
Hej Arne.

Jeg ser lige på det i weekenden, så jeg lader lige spørgsmålet stå åben indtil da.
Avatar billede MADOlsen Forsker
03. januar 2014 - 09:34 #12
Nu skrev du jo godt nok ikke, i hvilken weekend du ville se på det, meeen... ;-)
Avatar billede mads375 Juniormester
14. januar 2014 - 10:42 #13
Hej fedeko. Jo det er rigtigt, det er vidst lukketid. Ligger i ikke et svar begge to?

Mvh Mads
Avatar billede MADOlsen Forsker
14. januar 2014 - 10:50 #14
Her er et svar fra mig, hvis du mener, at mit input kunne bruges til noget :-) Fik du det i øvrigt til at virke?
Avatar billede arne_v Ekspert
14. januar 2014 - 15:07 #15
svar
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