arnada Posted September 5, 2006 Share Posted September 5, 2006 Hej, jag och några kompisar håller på med java i skolan så gav vi oss på ett litet program som vägrar att fungera. Här är källkoden: public class Ex{ public static void main(String[] args){ boolean fortsatt = true; double radie, längd, volym, höjd, bredd; final double PI = 3.14159; do{ System.out.println(" MENYn"); System.out.println("1. Klot"); System.out.println("2. Rätblock"); System.out.println("3. Cylinder"); System.out.println("4. Avsluta"); System.out.print("Ge ditt val: "); char val = Keyboard.readChar(); switch(val){ case '1': System.out.print("Ange radie: "); radie = Keyboard.readDouble(); volym = 4*PI*radie*radie*radie/3; break; case '2': System.out.print("Ange längd: "); längd = Keyboard.readDouble(); System.out.print("Ange bredd: "); bredd = Keyboard.readDouble(); System.out.print("Ange höjd: "); höjd = Keyboard.readDouble(); volym = längd*bredd*höjd; break; case'3': System.out.print("Ange radie: "); radie = Keyboard.readDouble(); System.out.print("Ange höjd: "); höjd = Keyboard.readDouble(); volym = PI*radie*radie*höjd; break; case '4': fortsatt = false; break; default: System.out.println("Fel"); } if (val == '1' || val == '2' || val == '3'){ System.out.println("Volymen blir " + volym); }System.out.println(""); }while (fortsatt); } } jag får detta fel meddelandet: D:My DocumentsSkolaJavaProgramomvandlareEx.java:44: variable volym might not have been initialized System.out.println("Volymen blir " + volym); Jag kan verkligen inte reda ut de, någon som är java kunnig här inne som kanske kan ? Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted September 5, 2006 Share Posted September 5, 2006 Klassen Keyboard? Vart har du den? Eller ingår den kanske i java? (har inte kört de på länge nu. ;D ) System.out.print tömmer inte cachen. Använd println. Quote Link to comment Share on other sites More sharing options...
arnada Posted September 5, 2006 Author Share Posted September 5, 2006 klassen keyboard laddas, men när jag ändrar System.out.println("Volymen blir " + volym); till System.out.println("Volymen blir " + "volym"); Så går det komplimera programmet men svaren blir hela tiden (volymen blir volym) ;D Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted September 5, 2006 Share Posted September 5, 2006 Ja har inte javan på datorn just nu. Men kanske. System.out.print("Volymen blir "); //ingen ny rad System.out.println(volym); Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted September 6, 2006 Share Posted September 6, 2006 Hitta felet. volym hade ju bara ett värde innuti case-slingan. Nu funkar de. Du får fixa resten själv. ;D Hade ingen keyboard-class så de e de som är längst ner istället. ----------------------------------------------------------------------------------------------------------------------- import java.io.*; public class Ex{ public static void main(String[] args){ boolean fortsatt = true; double radie, längd, volym, höjd, bredd; final double PI = 3.14159; do{ System.out.println(" MENYn"); System.out.println("1. Klot"); System.out.println("2. Rätblock"); System.out.println("3. Cylinder"); System.out.println("4. Avsluta"); System.out.print("Ge ditt val: "); int val = In.läsHeltal(" "); //val = (int)val; switch(val){ case 1: //System.out.print("Ange radie: "); //Ändrade till raden under radie = In.läsInFlyttal("Ange radie:"); //så här i stället volym = 4*PI*radie*radie*radie/3; volymen(volym);//Skickar volym till volymen break; case 2: System.out.print("Ange längd: "); // Resten får du fixa längd = In.läsInFlyttal(" "); System.out.print("Ange bredd: "); bredd = In.läsInFlyttal(" "); System.out.print("Ange höjd: "); höjd = In.läsInFlyttal(" "); volym = längd*bredd*höjd; volymen(volym); break; case 3: System.out.print("Ange radie: "); radie = In.läsInFlyttal(" "); System.out.print("Ange höjd: "); höjd = In.läsInFlyttal(" "); volym = PI*radie*radie*höjd; volymen(volym); break; case 4: fortsatt = false; break; default: System.out.println("Fel"); } if (val == '1' || val == '2' || val == '3'){ volymen(10); }System.out.println(""); }while (fortsatt); } public static void volymen(double v){ System.out.println("Volymen är: "+v); } } class In{ private static BufferedReader matain=new BufferedReader(new InputStreamReader (System.in)); public static double läsInFlyttal (String p){ try{ System.out.print (p); String indata=matain.readLine(); double k=Double.valueOf(indata).doubleValue(); return k; } catch (Exception e){ throw new RuntimeException("Siffror ditt J_Fla ha ha"); } } public static int läsHeltal (String p){ try{ System.out.print (p); String indata = matain.readLine(); int k = Integer.parseInt (indata); return k; } catch (Exception e) { throw new RuntimeException("Siffror ditt J_Fla ha ha"); } } } Quote Link to comment Share on other sites More sharing options...
arnada Posted September 9, 2006 Author Share Posted September 9, 2006 fyfan landsfisken, de va hardcore kodning där ;D big ups ! 8) Vi hade själva koden i en lärobok, men den va visst fel. ganska mycke fel, dagens vuxna, jag säger bara de ;D Quote Link to comment Share on other sites More sharing options...
Landsfiskalen Posted September 9, 2006 Share Posted September 9, 2006 Ha ha. Ja har nästan glömt alltihopa. Första gången sen i våras ja kör java. ;D Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.