Forum: Nybörjar hjälp med java

Forum huvudsida -> Programmering -> Nybörjar hjälp med java

Sidor: 1

Till botten

Villemo 09:17 - 21:a Juli 2008 | Post #1
Medlem
Inlägg: 7


Skicka PM
Hej, jag läser en grundkurs i java. Och jag har fått lite feedback från min lärare på en uppgift.. Hon säger att jag måste se till att koden inte dividerar med 0. Jag har läst igenom kurslitteraturen minst 100 ggr och jag hittar inte vad jag ska göra. Har någon av er möjligtvis något tips? Jag har förstått att jag ska använda mig utav ett exception av något slag?

Tar gärna emot tips på webblänkar och böcker som är bra när man är nybörjare? Smiley


Senast redigerad 09:54 - 21:a Juli 2008


Dread 10:12 - 21:a Juli 2008 | Post #2
Medlem
Inlägg: 135


Skicka PM
För att kolla så att du inte dividerar med 0 räcker en "vanlig" if-sats ganska långt. e/0 funkar inte att dividera, det går att kontrollera på en vanlig miniräknare men blir någon form av error för det mesta.
  1. int i =0, e=10;
  2. double sum;
  3. if (i!=0){
  4. sum = e/i;
  5. }else{
  6. System.out.println("i has a zero value, this program vill now terminate")
  7. return 0;
  8. }


Nu har jag iof gjort så att i är 0 och if-satsen aldrig genomförs, sen kan man alltid göra snyggare och bättre varianter med hjälp av loopar (while-sats).

-------------------------
c++



Villemo 10:26 - 21:a Juli 2008 | Post #3
Medlem
Inlägg: 7


Skicka PM
Hej Dread,
och tack för ditt svar!

Mitt program låter användaren skriva in ett okänt antal heltal, när denne skriver in ett negativt heltal avbryts loopen och sammanfattar resultatet på de värden som användaren skrivit in.

Sammanfattningen berättar hur många tal som är under hundra, exakt hundra och över hundra. Så här långt har jag fått det att funka! Sedan ska programmet också räkna ut medelvärdet på talen under hundra och talen över hundra.

Det är här som mitt problem kommer in.. tänk om användaren inte har slagit in något tal under hundra? Då dividerar ju programmet med 0.. och det får den inte göra!

Kan jag ändå köra med ditt förslag?





Sabbath 22:54 - 21:a Juli 2008 | Post #4
Medlem
Inlägg: 26


Skicka PM
Då kan man ha att programmet först kollar hur många inmatningar som gjorts och om det så inte gjorts några så skriver programmet ut det , om det har gjorts inmatningar så gör programmet alla beräkningar och så vidare.

-------------------------
(double)42/Math.pi==13,37



Villemo 10:56 - 22:a Juli 2008 | Post #5
Medlem
Inlägg: 7


Skicka PM
    Citat av Sabbath:
Då kan man ha att programmet först kollar hur många inmatningar som gjorts och om det så inte gjorts några så skriver programmet ut det , om det har gjorts inmatningar så gör programmet alla beräkningar och så vidare.


Hej Sabbath, tack för ditt svar.

Jag tror jag har kommit på hur jag ska göra nu!Smiley
Får testa och se vad jag får för respons av läraren..

Nu när jag löste det här problemet så hittade jag ett till!
Om man vid inmatningen skriver in något annat än en siffra så avbryts programmet. Det står exempelvis "Exception in thread "main" java.lang.NumberFormatException: For input string: "m".

Hur gör jag för att fånga problemet så att säga? Jag har funderat lite på "try-catch". Men jag är osäker på vart och hur jag ska skriva så att den fångar allt som inte är siffror.






FunkyChicken 12:24 - 22:a Juli 2008 | Post #6
Nyhetsredaktör
Inlägg: 800


Skicka PM
Såhär använder du try...catch:

  1. //Här börjar antagligen någon slags loop i ditt program
  2.  
  3. try
  4. {
  5. //Här läser du in från användaren, kollar om det var negativt osv
  6. }
  7. catch (NumberFormatException err)
  8. { //Detta block körs endast om ett fel inträffar
  9. System.out.println("wtf r u doin? Numbers only plz!")
  10. }
  11.  
  12. //Slut på loopen, gå vidare med nästa inläsning





Sidor: 1

Forum huvudsida -> Programmering -> Nybörjar hjälp med java
Atom feed

Du får inte posta i den här tråden | Till toppen