Avatar billede madiedk Nybegynder
08. november 2004 - 23:57 Der er 14 kommentarer og
1 løsning

Udskriv kun hvis

jeg har følgende problem:

                    for(int nr=0;nr<20;nr++)
                    for(int nr2=0;nr2<10;nr2++)
                    if(allestu[nr].opgave[nr2].getStatus().equals("Godkendt")){
                    System.out.println(allestu[nr].getNavn());}

mit problem er at jeg jeg kun vil ha den til at skrive "getNavn()" ud hvis "getStatus().equals("Godkendt"))" 6 gang.

hvordan gør jeg det?
Avatar billede madiedk Nybegynder
09. november 2004 - 00:01 #1
jeg kunne forestille mig det var noget med if(getNavn().length.equals(?)) eller noget lignende
Avatar billede madiedk Nybegynder
09. november 2004 - 00:11 #2
eller måske noget med boolean
Avatar billede simonvalter Praktikant
09. november 2004 - 01:00 #3
du skal vel bruge en tæller for at finde ud af om en student har 6 godkendte opgaver.

tæl op når getStatus().equals("Godkendt"))
check om tæller er 6 og print studenten.
start tælleren forefra når du går igang med en ny student.
Avatar billede madiedk Nybegynder
09. november 2004 - 01:02 #4
hmm...en tæller?
Avatar billede simonvalter Praktikant
09. november 2004 - 01:29 #5
int count;

/løb studerende igennem
int count = 0; // reset tæller så den kan bruges igen.
//løb den studerendes opgaver igennem
if (opgave godkendt) // opgaven er godkendt, tæl op
count++;
if (count == 6) // 6 gang der er en godkendt opgave
//print den studerende
break; // ingen grund til at løbe de resterende opgaver igennem for denne studerende hvis der bare skal være 6 godkendte
Avatar billede madiedk Nybegynder
09. november 2004 - 01:50 #6
svar
Avatar billede simonvalter Praktikant
09. november 2004 - 01:52 #7
ok
Avatar billede madiedk Nybegynder
09. november 2004 - 01:54 #8
kan godt se ideen i det du sagde, roder lidt med det. tak for hjælpen
Avatar billede simonvalter Praktikant
09. november 2004 - 01:55 #9
det var så lidt
Avatar billede madiedk Nybegynder
09. november 2004 - 02:21 #10
der hvor der står equals("Godkendt") er der lidt problemer da der er nogle hvor der står "ikke godkendt" og dem tager den også med er der et eller andet smart tricks til at klarer det.
Avatar billede simonvalter Praktikant
09. november 2004 - 04:31 #11
leg lidt med det her.. jeg har gættet mig lidt frem til hvad det er du prøver på..
public class Test {

    public static void main(String[] args) {
        Opgave o1 = new Opgave("Godkendt");
        Opgave o2 = new Opgave("Ikke Godkendt");

        Opgave[] opgaver = {o1, o1, o2, o1, o1, o1,o2};
        Opgave[] opgaver2 = {o1, o1, o1, o1, o1, o1,o1};

        Student a = new Student("a");
        a.setOpgaver(opgaver);

        Student b = new Student("b");
        b.setOpgaver(opgaver2);

        Student[] allStudents = {a, b};



        for (int i = 0; i < allStudents.length; i++) {
          int count = 0;
            for (int j = 0; j < allStudents[i].opgaver.length; j++) {
                if (allStudents[i].opgaver[j].getStatus().equals("Godkendt")) {
                    count++;
                    if (count == 6) {
                        System.out.println(allStudents[i]);
                        break;
                    }
                }
            }
        }
    }


    public static class Student {
        private String name;
        private Opgave[] opgaver;

        public Student(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }

        public void setOpgaver(Opgave[] opgaver) {
            this.opgaver = opgaver;
        }

        public String toString() {
            return "Student{" +
                    "name='" + name + "'" +
                    "}";
        }
    }

    public static class Opgave {
        private String status;
       
        public Opgave(String status) {
            this.status = status;
        }

        public String getStatus() {
            return status;
        }
    }
}
Avatar billede madiedk Nybegynder
09. november 2004 - 13:15 #12
mit eneste problem er det her:
                if(fag.equals("1"))
                {
                    for(int nr=0;nr<20;nr++)
                    for(int nr2=0;nr2<10;nr2++)                   
                    if(allestu[nr].opgave[nr2].getStatus().equals("Godkendt")) 
                    {                                                         
                        tæller++;
                            if(tæller == 6)
                            {   
                                System.out.println(allestu[nr].getNavn());
                                tæller = 0;

                            }     
                    }
                }

problemet er bare at den printer nogle af navnene ud 2 gang og det er heller ikke helt de rigtigt den printer ud.
Avatar billede madiedk Nybegynder
09. november 2004 - 13:39 #13
har fået det til at virker. tak igen.
Avatar billede madiedk Nybegynder
09. november 2004 - 13:48 #14
lige en sidste ting. jeg har lavet det her nu:                if(fag.equals("1"))
                {
                    for(int nr=0;nr<allestu.length;nr++)
                    {                   
                        int count = 0;
                            for(int nr2=0;nr2<10;nr2++)
                            {                   
                                if(allestu[nr].opgave[nr2].getStatus().equals("Godkendt"))
                                {                                                                               
                                    count++;
                                        if(count == 6)
                                        {   
                                            System.out.println(allestu[nr].getNavn());
                                            break;

                                        }     
                                }
                            }
                    }
                }

men hvis opgave 8 og 9 ikke er godkendt så skal den ikke udskrive navnet på den studerende, heller ikke selvom alle de andre er godkendt. jeg har en smule svært ved lige at overskue det. måske du kan komme med en sidste hjælp?
Avatar billede madiedk Nybegynder
09. november 2004 - 13:54 #15
har fundet ud af det
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