Avatar billede henni80 Nybegynder
22. marts 2003 - 17:03 Der er 16 kommentarer og
1 løsning

betingelser i en if-sætning

Hvad er der galt med mine betingelser i denne if-sætning?

if (kortnr.length() > 1 && < 8 && > 8) {
        JOptionPane.showMessageDialog(null, "Ugyldigt årskortnr");
            }
Avatar billede r9 Nybegynder
22. marts 2003 - 17:06 #1
prøv:

if ((kortnr.length() > 1) && (kortnr.length() < 8) && (kortnr.length()  > 8)) {
        JOptionPane.showMessageDialog(null, "Ugyldigt årskortnr");
            }
Avatar billede arne_v Ekspert
22. marts 2003 - 17:07 #2
if (kortnr.length() != 8) {
        JOptionPane.showMessageDialog(null, "Ugyldigt årskortnr");
            }
Avatar billede erikjacobsen Ekspert
22. marts 2003 - 17:08 #3
Men du mener nok
if (kortnr.length() != 8) {
Avatar billede r9 Nybegynder
22. marts 2003 - 17:08 #4
men kortnr.length() kan jo ikke både være mindre end 8 og større end 8!!
Avatar billede arne_v Ekspert
22. marts 2003 - 17:09 #5
henni80>

Din version er ikke syntax mæssigt korrekt.

Det er:
  (variabel sammenligning værdi) && (variabel sammenligning værdi)
Avatar billede arne_v Ekspert
22. marts 2003 - 17:10 #6
r9>

if ((kortnr.length() > 1) && (kortnr.length() < 8) && (kortnr.length()  > 8)) {

er syntax mæssig korrekt men vil aldrig være sand.
Avatar billede r9 Nybegynder
22. marts 2003 - 17:10 #7
netop
Avatar billede arne_v Ekspert
22. marts 2003 - 17:12 #8
Hvis det endelig skulle laves som en dobbelt sammenligning ville det være:

if ((kortnr.length() < 8) || (kortnr.length() > 8)) {
Avatar billede henni80 Nybegynder
22. marts 2003 - 17:14 #9
ok - kigger lige på det
Avatar billede r9 Nybegynder
22. marts 2003 - 17:15 #10
henni80 har nok bare byttet rundt på AND og OR
Avatar billede henni80 Nybegynder
22. marts 2003 - 17:19 #11
Jeg smider lige lidt kode for at forklare hvad jeg gerne vil.

-----------------
while (kortnrInput.length() == 8) {
            if (kortnrInput.length() == 8) {
                elever.add(kortnrInput);
                kortnrInput =
                    JOptionPane.showInputDialog("Indtast elevens årskortnr");
            }

            if (kortnrInput.length() > 1 && < 8 && > 8) {
                JOptionPane.showMessageDialog(null, "Ugyldigt årskortnr");
            }

            if (kortnrInput.length() ==1) {
                Collections.sort(elever);
                JOptionPane.showMessageDialog(
                    null,
                    "Følgende elever er bestået: \n" + elever);
            }
-------------

Det jeg gerne vil er:
1. når der er indtastet et kortnr på 8 karakter så skal man kunne indtaste endnu et
2. hvis man indtaster 1 karakter skal en resultat vises
3. hvis man taster 2-7 karakter eller over 8 skal det give en fejlmeddelse.

Derfor tror jeg ikke at jeg bare kan bruge !=8 for så dur 1 jo pludselig ikke...
Avatar billede henni80 Nybegynder
22. marts 2003 - 17:20 #12
og så er det disse sætninger det drejer sig om:

if (kortnrInput.length() > 1 && < 8 && > 8) {
                JOptionPane.showMessageDialog(null, "Ugyldigt årskortnr");
            }
Avatar billede henni80 Nybegynder
22. marts 2003 - 17:28 #13
har skrevet således i stedet:

if ((kortnrInput.length() > 1) && (kortnrInput.length() < 8) || (kortnrInput.length() > 8)) {
            JOptionPane.showMessageDialog(null, "Ugyldigt årskortnr");
            }

- lige endnu et spg. når jeg indtaster et ugyldigt kortnr så får jeg en fejlmeddelse hvilket er 10/4

men hvis man så skal have mulighed for at indtaste nogle flere kortnr, hvad skal jeg så gøre?
Avatar billede erikjacobsen Ekspert
22. marts 2003 - 17:38 #14
if ((kortnrInput.length() > 1) && ((kortnrInput.length() < 8) || (kortnrInput.length() > 8))) {

...hvis du vil gøre det sådan
Avatar billede arne_v Ekspert
22. marts 2003 - 17:53 #15
Hvad med:

boolean more = true;
while(more) {
    kortnrInput = JOptionPane.showInputDialog("Indtast elevens årskortnr");
    int l = kortnrInput.length();
    if(l == 1) {
      Collections.sort(elever);
      JOptionPane.showMessageDialog(null, "Følgende elever er bestået: \n" + elever);
      more = false;
    } else if(l == 8) {
        elever.add(kortnrInput);
    } else {
        JOptionPane.showMessageDialog(null, "Ugyldigt årskortnr");
    }
}
Avatar billede arne_v Ekspert
22. marts 2003 - 17:58 #16
Jeg gættede på at 1 betød exit.
Avatar billede henni80 Nybegynder
23. marts 2003 - 13:11 #17
Tak for hjælpen
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