Gå till innehåll

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

Länk till kommentar
Dela på andra webbplatser

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

Länk till kommentar
Dela på andra webbplatser

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

}

}

}

Länk till kommentar
Dela på andra webbplatser

Delta i dialogen

Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Your previous content has been restored.   Clear editor

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

×
×
  • Skapa nytt...