Avatar billede henrikgotfred Nybegynder
19. juni 2005 - 23:28 Der er 11 kommentarer og
1 løsning

cin i java

Hej
Hvad hvordan indlæser man variabler i java (konsol). Jeg tænker på ligesom i c++:

C++
.....
cout >> "indtast alder";
cin << alder

java
.....
System.out.println("indtast alder");
??????????????

/gotfred
Avatar billede arne_v Ekspert
19. juni 2005 - 23:30 #1
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int alder = Integer.parseInt(br.readLine());
Avatar billede arne_v Ekspert
19. juni 2005 - 23:32 #2
I java 1.5 er der en Scanner klasse som du kan bruge - se http://www.eksperten.dk/artikler/167
(afsnittet om Scanner)
Avatar billede henrikgotfred Nybegynder
20. juni 2005 - 00:02 #3
hmm. Lyder temmelig besværligt set i forhold til C++.

Her er den "rigtige" kode, som stadig give fejl. Kan du hjælpe mig?


porto.java
.............
/*
Program til udregning af porto ved indtastning af vægt

Opgave 2.3.2 - 2)
Side 39 i javabog.dk

Vægt
Højst 50 gram: kr. 4,50
Højst 100 gram: kr. 7,50
Højst 250 gram: kr. 12,50
Højst 500 gram: kr. 22,00
Højest 1000 gram: kr. 30,00
Over 1000 gram: IKKE BREV MEN PAKKE
*/


public class porto
{
    public static void main (String[] arg)
    {
       
        BufferedReader br = new BufferdeReader(new InputStreamReader(System.in));
        System.out.println("Indtast vægt");
        System.out.println();
        double vaegt = Double.parseInt(br.readLine());
        System.out.println(vaegt);
    }
}


FEJL
.........
porto.java:22: cannot resolve symbol
symbol  : class BufferedReader
location: class porto
            BufferedReader br = new BufferdeReader(new InputStreamReader(System.in));
            ^
porto.java:22: cannot resolve symbol
symbol  : class BufferdeReader
location: class porto
            BufferedReader br = new BufferdeReader(new InputStreamReader(System.in));
                                    ^
porto.java:22: cannot resolve symbol
symbol  : class InputStreamReader
location: class porto
            BufferedReader br = new BufferdeReader(new InputStreamReader(System.in));
                                                      ^
3 errors

/Gotfred
Avatar billede arne_v Ekspert
20. juni 2005 - 00:03 #4
import java.io.*; // <----- for at få alle java's IO klasser

public class porto
Avatar billede arne_v Ekspert
20. juni 2005 - 00:04 #5
double vaegt = Double.parseInt(br.readLine());

->

double vaegt = Double.parseDouble(br.readLine());

:-)
Avatar billede arne_v Ekspert
20. juni 2005 - 00:04 #6
import java.io.*;
import java.util.*;

svarer sådan ca. til:

using namespace std;

i C++
Avatar billede henrikgotfred Nybegynder
20. juni 2005 - 12:13 #7
Dit løsningsforslag er sikkert rigtig, men jeg kunne stadig ikke få mit program til at virke.

På javabog.dk fandt jeg en javafil, som gør at man kan læse fra tastaturet. Så her er filen og min løsning:

Tastatur.java
-------------
import java.io.*;

public class Tastatur
{
  BufferedReader ind;

  public Tastatur()
  {
    ind = new BufferedReader(new InputStreamReader(System.in));
  }

  public String læsLinie()
  {
    try
    {
      String linie = ind.readLine();
      return linie;
    } catch (IOException u)
    {
      u.printStackTrace();
    }
    return null;
  }

  public int læsHeltal()
  {
    String linie = læsLinie();
    return Integer.parseInt(linie);
  }

  public double læsTal()
  {
    String linie = læsLinie();
    return Double.parseDouble(linie);
  }

}


porto.java
----------
/*
Program til udregning af porto ved indtastning af vægt

Opgave 2.3.2 - 2)
Side 39 i javabog.dk

Vægt
Højst 50 gram: kr. 4,50
Højst 100 gram: kr. 7,50
Højst 250 gram: kr. 12,50
Højst 500 gram: kr. 22,00
Højest 1000 gram: kr. 30,00
Over 1000 gram: IKKE BREV MEN PAKKE
*/


public class porto
{
    public static void main (String[] arg)
    {
          Tastatur tast = new Tastatur(); // opret et Tastatur-objekt
        double vaegt = 0;
            System.out.println("Indtast brevets vægt");
            vaegt = tast.læsTal(); //kald læstTal op Tastatur-objektet
        String pris;
        if (vaegt <= 50)
        pris = " koster kr. 4,50";
        else if (vaegt <= 100)
        pris = " koster kr. 7,50";
        else if (vaegt <= 250)
        pris = " koster kr. 12,50";
        else if (vaegt <= 500)
        pris = " koster kr. 22,-";
        else if (vaegt <= 1000)
        pris = " koster kr. 30,-";
        else
        pris = " ER IKKE ET BREV MEN EN PAKKE";
        System.out.println("Et brev, som vejer "+vaegt+ " gram" +pris);
    }
}




Jeg kan godt se af filen tastatur.java, at du havde fat i det rigtige, så hvis du vil sige om du vil have point eller ej.

/henrik
Avatar billede arne_v Ekspert
20. juni 2005 - 13:21 #8
det her virker:

import java.io.*;

public class Porto {
    public static void main (String[] arg) throws IOException {
     
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.print("Indtast vægt: ");
        double vaegt = Double.parseDouble(br.readLine());
        System.out.println(vaegt);
    }
}
Avatar billede arne_v Ekspert
20. juni 2005 - 13:23 #9
udover 00:03:41 og 00:04:12 har jeg:
  rettet en stave fejl i BufferdeReader
  tilføjet throws IOException
  rettet lidt kosmetisk (prompt, klassenann med stort, placering af {})
Avatar billede arne_v Ekspert
20. juni 2005 - 13:23 #10
og et svar
Avatar billede henrikgotfred Nybegynder
20. juni 2005 - 17:28 #11
tak
Avatar billede arne_v Ekspert
20. juni 2005 - 17:31 #12
C++ namespace = Java package

C++ using = Java import

java.lang, java.io og java.util indeholder det som er i std (java.lang behøver du ikke importere - den er der altid)

modsat C++ hvor enhver kan hævde at hans/hendes kode formaterings stil er den rigtige
så har SUN udgivet en lille guide til hvordan man bør navngive og formatere sin
kode
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester