/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Read input from keyboard
Fra : Kim Damgaard


Dato : 28-10-01 21:44

Jeg er ny ud i java programmering og kæmper med en lille opgave. Jeg skal
læse input fra tastaturet og udskrive inputtet i omvendt rækkefølge efter
tryk på Enter. Jeg tror mit program læser input godt nok men jeg får intet
skrevet ud. Jeg ville blive meget glad hvis nogle friske øjne kan hitte
fejlen. Kode:


import java.io.*;

class fejl extends Throwable
{
public void besked()
{
System.out.println("Oops. You entered too many chars!");
}
}

public class readKeyb
{
public static void main(String args[]) throws IOException
{
int i,j;
char stak[] = new char[100];

try {
i=0;
while ((stak[i] = (char) System.in.read()) != 13)
{
i = i+1;
if (i>=0) throw new fejl();
}
for (j=i; j>=0; j=j-1)
System.out.print(stak[j]);
}
catch (fejl f)
{
f.besked();
}
finally
{
}
}
}




 
 
Bertel Lund Hansen (28-10-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-10-01 22:31

Kim Damgaard skrev:

>public class readKeyb
>...
> try {
> i=0;
> while ((stak[i] = (char) System.in.read()) != 13)
> {
> i = i+1;
> if (i>=0) throw new fejl();

Du kaster en fejl første gang i forøges. Den fanges længere ned i
en catch som ikke laver noget.

En note der ikke har med fejl at gøre:
Skriv ++i eller i++ hvis du vil tælle i op med 1. Det virker ved
alle variable. Hvis der ikke sker andet end en optælling i et
statement, er det ligegyldigt om du sætter plusserne først eller
sidst.

Her gør det forskel:

   i=5;
   j=++i;   // i tælles op først.
      Både j og i bliver sat til 6.

   i=5;
   j=i++;   // i tælles op til sidst.
      j bliver 5, og i bliver 6.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Niels Teglsbo (29-10-2001)
Kommentar
Fra : Niels Teglsbo


Dato : 29-10-01 00:20

Bertel Lund Hansen <skrivtil@lundhansen.dk> wrote:

> Her gør det forskel:

Og jeg er sikker på, at

return a++;

vil give en hyggelig fejl.

--
Niels, The Offspring Mailinglist www.image.dk/~teglsbo

Lars Dam (28-10-2001)
Kommentar
Fra : Lars Dam


Dato : 28-10-01 22:59

On Sun, 28 Oct 2001 21:43:37 +0100, "Kim Damgaard"
<kim.damgaard@mail.dk> wrote:

>Jeg er ny ud i java programmering og kæmper med en lille opgave. Jeg skal
>læse input fra tastaturet og udskrive inputtet i omvendt rækkefølge efter
>tryk på Enter. Jeg tror mit program læser input godt nok men jeg får intet
>skrevet ud. Jeg ville blive meget glad hvis nogle friske øjne kan hitte
>fejlen. Kode:

Din print bliver først udskrevet, når din stream flushes, eller når
der kommer en linefeed, afslut med en sådan...
:
:
> for (j=i; j>=0; j=j-1)
> System.out.print(stak[j]);
> }
System .out.println();
:
:


vh. ld


Kim Damgaard (29-10-2001)
Kommentar
Fra : Kim Damgaard


Dato : 29-10-01 20:45

Tak for hjælpen.

Mvh Kim




Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408927
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste