14. juli 2003 - 01:42Der er
10 kommentarer og 1 løsning
Simpelt problem med metodekald og løkker
Jeg har ikke helt fanget, hvorfor dét her ikke virker... IfElse() bliver aldrig kaldt, og jeg troede at dét skete ved initialiseringen af objektet (?) nede i main()...?
Desuden kommer bliver else-løkken også kørt, selvom jeg prøver at sætte variablerne selv.
public class IfElse { private boolean isEt = false; private boolean isTo = false; private boolean isTre = false; private boolean isFire = false;
public void IfElse() { isEt = true; return; } public void Lokker() { if (isEt) System.out.println("Tallet er 1"); if (isTo) System.out.println("Tallet er 2"); if (isTre) System.out.println("Tallet er 3"); if (isFire) System.out.println("Tallet er 4"); else System.out.println("Programmet er itu"); } public static void main (String args[]) { IfElse test; test = new IfElse(); test.Lokker(); } }
Godt...dét får det så til at virke, sådan halvvejs. Jeg har stadig et problem med at Else-statementet hele tiden bliver kørt. Jeg har lavet en Switch, der fungerer et stykke hen ad vejen:
public void value(int str) { s = str; switch (s) { case 1: isEt = true; break; case 2: isTo = true; break; case 3: isTre = true; break; case 4: isFire = true; break; default: System.out.println("Default"); } }
public static void main (String args[]) { IfElse test; test = new IfElse(); test.value(2); test.Lokker(); }
...men dén der Else-satan bliver ved med at poppe op.
Er der en simpel forklaring på hvorfor det virker, når main fjerner void?
Hm...og der er ikke noget, der kan compiles som "else if" i Forte. Det kræver en condition af en slags, der jo ikke er der: Det skal bare være hvis det andet ikke fungerer. Jeg har lavet samme show med en switch, men mener at det bør kunne lade sig gøre med if-else.
...og det kan det. Men else if ((isEt==false) && (isTo==false) && (isTre==false)&& (isFire==false)) har så lært mig at jeg ikke skal bruge if else til sådan noget her :o)
Godt, jeg vil gerne give SquashGuy 15 point...men jeg har ikke lov?
public void Lokker() { if (isEt) System.out.println("Tallet er 1"); else if (isTo) System.out.println("Tallet er 2"); else if (isTre) System.out.println("Tallet er 3"); else if (isFire) System.out.println("Tallet er 4"); else System.out.println("Programmet er itu"); }
Æh jo, det var mig, der havde sat det forkert op...jeg troede at det sidste If skulle placeres nede i bunden, så der altså stod if, if, it, if og else if. Nu kan jeg godt se at dét ikke var helt korrekt.
Synes godt om
Ny brugerNybegynder
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.