12. november 2006 - 21:42Der er
20 kommentarer og 1 løsning
if sætning
Hej eksperter, Er igang med en lille bmi applet. Den er mere eller mindre færdig, men jeg skal lige have lavet sådan at den fortæller brugeren hvilket interval de ligger indenfor. Her er udtræk fra koden:
public void actionPerformed(ActionEvent e) { Object obj=e.getSource(); if (obj==knap){ try { vaegt=Double.parseDouble(vaegt_input.getText()); hoejde=Double.parseDouble(hoejde_input.getText()); bmi= vaegt/(hoejde*hoejde); bmi_input.setText(""+bmi); if (vaegt_input.getText()<==18){ vaegtklasse.setText("Vejer for lidt"); } else if (vaegt_input.getText()>==18 & <==25){ vaegtklasse.setText("Passende vægt"); } else if (vaegt_input.getText()>==25 & <==30){ vaegtklasse.setText("Vejer for meget"); } else if (vaegt_input.getText()>==30){ vaegtklasse.setText("Overvægtig"); } } catch (NumberFormatException n) { } } }
Og den egentlig fejl ligger i :
if (vaegt_input.getText()<==18){ vaegtklasse.setText("Vejer for lidt"); } else if (vaegt_input.getText()>==18 & <==25){ vaegtklasse.setText("Passende vægt"); } else if (vaegt_input.getText()>==25 & <==30){ vaegtklasse.setText("Vejer for meget"); } else if (vaegt_input.getText()>==30){ vaegtklasse.setText("Overvægtig"); }
Hvad er fejlen? Det kan godt være hele if sætningen skal placeres anderledes.. Jeg er ikke så meget inde i java endnu.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
ændret til: if (vaegt_input.getText()<=18){ vaegtklasse.setText("Vejer for lidt"); } else if (vaegt_input.getText()>=18 & <=25){ vaegtklasse.setText("Passende vægt"); } else if (vaegt_input.getText()>=25 & <=30){ vaegtklasse.setText("Vejer for meget"); } else if (vaegt_input.getText()>=30){ vaegtklasse.setText("Overvægtig"); }
får stadig fejl.. programmet siger: illegal start of expression og ')' expected
jeg får ingen fejl, men jeg får heller ik udskrevet noget i tekstfeltet "vaegtklasse".. måske skal vaegt_input.getText()) ændres til "bmi" kun.. men så skal Integer.parseInt ændres, ikke sandt? Har i nogle forslag..
altså det er som om den ikke kan læse fra hvad der er blevet udskrevet i inputfeltet.. så derfor skal vi måske have værdien fra selve udregningen.. dvs.
bmi= vaegt/(hoejde*hoejde);
men hvordan får vi tilpasset if ( Integer.parseInt( vaegt_input.getText() ) <= 18){ til at tage fra "bmi"
nu må jeg hellere lige få gjort en ting klar først.. :)
vaegt_input som vi har brugt i eksemplerne var en fejl fra min side.. det er selvfølgelig bmi_input.. vægt_input er bare feltet hvor brugeren indtaster sin vægt..
bmi_input derimod er der hvor det udregnede bmi_tal bliver skrevet til brugeren efter han har trykket på knappen "Beregn"...
og det er dette tal som bliver skrevet i bmi_input vi skal bruge.. og det er som om vores kode ikke gider bruge bmi_input da værdien er noget fra udregningen og ikke noget brugeren har indtastet.. forstår du ?
if ( bmi <= 18.0){ // uændret vaegtklasse.setText("Vejer for lidt"); } else if (bmi <=25.0){ // "bmi > 18.0" fjernet for vi VED jo det passer her vaegtklasse.setText("Passende vægt"); } else if (bmi <=30.0){ // "bmi > 25.0" fjernet for vi VED jo det passer her vaegtklasse.setText("Vejer for meget"); } else { // "if (bmi > 30.0)" fjernet for vi VED jo det passer her vaegtklasse.setText("Overvægtig"); }
mvh JakobA
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.