java problem


Recommended Posts

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 ?  :)

Link to comment
Share on other sites

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");

}

}

}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share