/ 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
argumenter som int...
Fra : Kim Petersen


Dato : 23-09-01 09:53

Kan det virkelig passe at man ikke kan lave en main som nedenstående???
public static void main (int args[]) {
}

Når jeg bruger
public static void main (String args[]) {
}
virker programmet. ER det virkelig nødvendig med en typekonvertering af et
stringargument til en int? :(

På forhånd tak
Kim Petersen



 
 
Lars Dam (23-09-2001)
Kommentar
Fra : Lars Dam


Dato : 23-09-01 10:18

On Sun, 23 Sep 2001 10:52:51 +0200, "Kim Petersen"
<win2000@worldonline.dk> wrote:

>Kan det virkelig passe at man ikke kan lave en main som nedenstående???
>public static void main (int args[]) {
>}
>
>Når jeg bruger
>public static void main (String args[]) {
>}
>virker programmet. ER det virkelig nødvendig med en typekonvertering af et
>stringargument til en int? :(

Ja. Definitionen er at din main skal have et streng array. ja - det
kan virkeligt passe at du skal konvertere til int selv - eftersom man
ikke kan være sikker på at brugeren taster tal ind.

>På forhånd tak
>Kim Petersen
>

vh. ld

Bertel Lund Hansen (23-09-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 23-09-01 10:25

Kim Petersen skrev:

>Kan det virkelig passe at man ikke kan lave en main som nedenstående?

Ja.

>public static void main (int args[]) {

>Når jeg bruger
>public static void main (String args[]) ... virker programmet.

Nemlig.

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

Soren 'Disky' Reinke (24-09-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 24-09-01 07:29


"Kim Petersen" <win2000@worldonline.dk> skrev i en meddelelse
news:PIhr7.2664$sE.171197@news000.worldonline.dk...
> Kan det virkelig passe at man ikke kan lave en main som
nedenstående???
> public static void main (int args[]) {
> }
>
> Når jeg bruger
> public static void main (String args[]) {
> }
> virker programmet. ER det virkelig nødvendig med en
typekonvertering af et
> stringargument til en int? :(

Ja selvfølgelig er det nødvendigt.

For hvad nu hvis brugeren indtaster noget text istedet for et
tal, hvad skal programmet så gøre ?

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email




Kim Petersen (24-09-2001)
Kommentar
Fra : Kim Petersen


Dato : 24-09-01 15:22

>>ER det virkelig nødvendig med en
> typekonvertering af et
> > stringargument til en int? :(
>
> Ja selvfølgelig er det nødvendigt.
>
> For hvad nu hvis brugeren indtaster noget text istedet for et
> tal, hvad skal programmet så gøre ?
>
> --
Efter at have tænkt lidt over det, synes jeg svaret på dit svar er: det skal
java selv klare! :)
(det burde ikke være så svært at indbygge)



Thorkild Sørensen (24-09-2001)
Kommentar
Fra : Thorkild Sørensen


Dato : 24-09-01 15:28

så har du ikke tænkt på det ret lang tid..... :)

Du vil måske lave et program der kan divedere to tal og skrive det ud.......i en
normal situation: "dit_program 8 4" og resultat 2 JUHU

Næste eksempel:

"dit_program Hans bent" ..........hvad havde du tænkt dig at Java skulle gøre
ved det.........at håndtere disse "exceptions" er faktisk en stor del af at
programmere, at tænke på alle mulige og umulige situationer..

Hilsen Thorkild

Kim Petersen skriver:

> >>ER det virkelig nødvendig med en
> > typekonvertering af et
> > > stringargument til en int? :(
> >
> > Ja selvfølgelig er det nødvendigt.
> >
> > For hvad nu hvis brugeren indtaster noget text istedet for et
> > tal, hvad skal programmet så gøre ?
> >
> > --
> Efter at have tænkt lidt over det, synes jeg svaret på dit svar er: det skal
> java selv klare! :)
> (det burde ikke være så svært at indbygge)


Kim Petersen (24-09-2001)
Kommentar
Fra : Kim Petersen


Dato : 24-09-01 21:51

"Thorkild Sørensen" <tgs@mailserver.dk> skrev i en meddelelse
news:3BAF42F5.B0C95E91@mailserver.dk...
> så har du ikke tænkt på det ret lang tid..... :)
>
> Du vil måske lave et program der kan divedere to tal og skrive det
ud.......i en
> normal situation: "dit_program 8 4" og resultat 2 JUHU
>
> Næste eksempel:
>
> "dit_program Hans bent" ..........hvad havde du tænkt dig at Java skulle
gøre
> ved det.........at håndtere disse "exceptions" er faktisk en stor del af
at
> programmere, at tænke på alle mulige og umulige situationer..

Jeg tænkte nu på at java kunne checke ascii værdien og vurdere om der er
tale om en int/float eller muligvis en streng. Dernæst checke om den første
parameter rent faktisk kan være i en int og meddele dette til brugeren.

Mvh.

---
"Tid er faktisk det eneste vi har"



Lars Dam (24-09-2001)
Kommentar
Fra : Lars Dam


Dato : 24-09-01 22:53

On Mon, 24 Sep 2001 22:51:01 +0200, "Kim Petersen"
<win2000@worldonline.dk> wrote:

>
>Jeg tænkte nu på at java kunne checke ascii værdien og vurdere om der er
>tale om en int/float eller muligvis en streng. Dernæst checke om den første
>parameter rent faktisk kan være i en int og meddele dette til brugeren.

Måske. Men det er altså ikke så svært, bare prøv:

Integer.parseInt(args[n]);

Kommer der en exception, er det ikke et tal.

>Mvh.
>
>---
>"Tid er faktisk det eneste vi har"



vh. ld

Soeren Degn Jahns (25-09-2001)
Kommentar
Fra : Soeren Degn Jahns


Dato : 25-09-01 06:24

Hmm..

Hvad med:

public static void main(String args[])
{
int n1 = 0;
int n2 = 0;

if ( args.length == 2 )
{
try
{
n1 = Integer.parseInt(args[0]);
n2 = Integer.parseInt(args[1]);
}
catch ( NumberFormatException e )
{
System.out.println("Argumentet er ikke et tal....");
}
}
else
{
System.out.println("Forkert syntax..... bla bla");
}
}


Mvh.
Søren


> Jeg tænkte nu på at java kunne checke ascii værdien og vurdere om der er
> tale om en int/float eller muligvis en streng. Dernæst checke om den
første
> parameter rent faktisk kan være i en int og meddele dette til brugeren.




Lars Dam (24-09-2001)
Kommentar
Fra : Lars Dam


Dato : 24-09-01 15:31

On Mon, 24 Sep 2001 16:21:43 +0200, "Kim Petersen"
<win2000@worldonline.dk> wrote:

>>>ER det virkelig nødvendig med en
>> typekonvertering af et
>> > stringargument til en int? :(
>>
>> Ja selvfølgelig er det nødvendigt.
>>
>> For hvad nu hvis brugeren indtaster noget text istedet for et
>> tal, hvad skal programmet så gøre ?
>>
>> --
>Efter at have tænkt lidt over det, synes jeg svaret på dit svar er: det skal
>java selv klare! :)
>(det burde ikke være så svært at indbygge)

Hvorfor laver du det ikke selv, når det nu er så nemt?

Anyway, så holder dit argument ikke; hvad så hvis jeg vil have at
brugeren skal indtaste en float? så skal vi have en main med float
argumenter. Hvad så hvis man vil have brugeren skal indtaste URL'er?

Eller hvis brugeren skal indtaste en streng, en int, en float og en
url?

Det vil i den sidste ende betyde at man skal have en mængde
forskellige main metoder, og det er så ikke engang sikkert at man får
dækket alle tænkelige kombinationer.

Nej så er det meget nemmere med en generel måde, som det er nu, og
lade det være op til programmøren at fortolke parametrene efter det
aktuelle behov.


vh. ld



---
"Time is the fire in which we burn"

Soren 'Disky' Reinke (25-09-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 25-09-01 07:45

> >>ER det virkelig nødvendig med en
> > typekonvertering af et
> > > stringargument til en int? :(
> >
> > Ja selvfølgelig er det nødvendigt.
> >
> > For hvad nu hvis brugeren indtaster noget text istedet for et
> > tal, hvad skal programmet så gøre ?
> >
> > --
> Efter at have tænkt lidt over det, synes jeg svaret på dit svar
er: det skal
> java selv klare! :)
> (det burde ikke være så svært at indbygge)

Det er det heller ikke, men selvtænkende programmerings sprog
laver fejl. Php er et glimrende eksempel der er variabler ikke
typefaste og til tider gætter php forkert, til stor iritation.

Hellere typecast.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Jonas Kongslund (25-09-2001)
Kommentar
Fra : Jonas Kongslund


Dato : 25-09-01 17:36

on Tuesday 25 September 2001 08:45, Soren 'Disky' Reinke
<disky@disky-design.ihsyd.dk> wrote:

> Det er det heller ikke, men selvtænkende programmerings sprog
> laver fejl. Php er et glimrende eksempel der er variabler ikke
> typefaste og til tider gætter php forkert, til stor iritation.

Kan du give real life eksempler? Jeg vil mene at man kun oplever den slags,
hvis man ikke tænker sig om idet man koder.

--
Jonas Kongslund <jonas@kongslund.dk> XNS: =Jonas Kongslund

Digital Rights - raising awareness of rights in the digital world
http://www.digitalrights.dk

Soren 'Disky' Reinke (26-09-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 26-09-01 07:19

> > Det er det heller ikke, men selvtænkende programmerings sprog
> > laver fejl. Php er et glimrende eksempel der er variabler
ikke
> > typefaste og til tider gætter php forkert, til stor
iritation.
>
> Kan du give real life eksempler? Jeg vil mene at man kun
oplever den slags,
> hvis man ikke tænker sig om idet man koder.

Har været ude for man har et tal i en variable (i java en int)
Så vil man lægge et andet tal til, og så concatenerer den
istedet, fordi den tror det er en streng :(

Skal dog siges at det er sjældent det skete, men det var
irriterende.

I Java,C,C++ osv ville dette problem aldrig været opstået.

En fortolker,compiler skal ikke forsøge at tænke.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Martin Mouritzen (26-09-2001)
Kommentar
Fra : Martin Mouritzen


Dato : 26-09-01 09:49

On Wed, 26 Sep 2001 08:18:31 +0200, "Soren 'Disky' Reinke"
<disky@disky-design.ihsyd.dk> wrote:

>Har været ude for man har et tal i en variable (i java en int)
>Så vil man lægge et andet tal til, og så concatenerer den
>istedet, fordi den tror det er en streng :(
>
>Skal dog siges at det er sjældent det skete, men det var
>irriterende.

Og et udslag for at man ikke tænkte sig om da man programmerede? :/
--
Guideix Martin Mouritzen Phone +45 43270524
Ringager 2A, 1. Java Developer Fax +45 43270556
DK-2605 Brøndby mm@guideix.com http://www.guideix.com

Soren 'Disky' Reinke (26-09-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 26-09-01 10:19

>
> >Har været ude for man har et tal i en variable (i java en int)
> >Så vil man lægge et andet tal til, og så concatenerer den
> >istedet, fordi den tror det er en streng :(
> >
> >Skal dog siges at det er sjældent det skete, men det var
> >irriterende.

Nope dårligt sprog som ikke har typefaste variabler.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Martin Mouritzen (26-09-2001)
Kommentar
Fra : Martin Mouritzen


Dato : 26-09-01 10:38

On Wed, 26 Sep 2001 11:18:38 +0200, "Soren 'Disky' Reinke"
<disky@disky-design.ihsyd.dk> wrote:

>>
>> >Har været ude for man har et tal i en variable (i java en int)
>> >Så vil man lægge et andet tal til, og så concatenerer den
>> >istedet, fordi den tror det er en streng :(
>> >
>> >Skal dog siges at det er sjældent det skete, men det var
>> >irriterende.
>
>Nope dårligt sprog som ikke har typefaste variabler.

http://www.usenet.dk/netikette/quote.html
--
Guideix Martin Mouritzen Phone +45 43270524
Ringager 2A, 1. Java Developer Fax +45 43270556
DK-2605 Brøndby mm@guideix.com http://www.guideix.com

Soren 'Disky' Reinke (26-09-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 26-09-01 11:21

>
> http://www.usenet.dk/netikette/quote.html

Hvad med du selv læser den, istedet for at lege politimand !

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Finn Nielsen (26-09-2001)
Kommentar
Fra : Finn Nielsen


Dato : 26-09-01 11:40

"Soren 'Disky' Reinke" <disky@disky-design.ihsyd.dk> writes:

> >
> > >Har været ude for man har et tal i en variable (i java en int)
> > >Så vil man lægge et andet tal til, og så concatenerer den
> > >istedet, fordi den tror det er en streng :(
> > >
> > >Skal dog siges at det er sjældent det skete, men det var
> > >irriterende.
>
> Nope dårligt sprog som ikke har typefaste variabler.

At et sprog ikke er typefast betyder altså ikke nødvendigvis at det er
dårligt, faktisk kan det i nogle tilfælde være en enorm fordel. Hvis
man ved, at det sprog man arbejder med ikke er typefast så er det ens eget
ansvar at sørge for at sproget opfatter en variabel som man gerne vil, og
hvis man stadig har typefejl er det ikke sproget man skal skyde skylden
på.

Iøvrigt er strengconcanatoren i PHP '.' og ikke '+' så hvis du har haft
det beskrevne problem i PHP er det er dig selv der har kludret.

--
Finn Nielsen - http://www.zznyyd.dk/

Soren 'Disky' Reinke (26-09-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 26-09-01 12:06

>
> Iøvrigt er strengconcanatoren i PHP '.' og ikke '+' så hvis du
har haft
> det beskrevne problem i PHP er det er dig selv der har kludret.

I know, men forklar det til php. Den lavede fejlen som beskrevet.

Den concatenerede noget som skulle adderes.

Korrekt det kan være en fordel at de ikke er typefaste, men alle
andre store sprog er typefaste. C,C++, Pascal, Delphi, Java osv.
Selv assembler er.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email




Peter Lind (26-09-2001)
Kommentar
Fra : Peter Lind


Dato : 26-09-01 14:34


"Soren 'Disky' Reinke" <disky@disky-design.ihsyd.dk>
> > Iøvrigt er strengconcanatoren i PHP '.' og ikke '+' så hvis du
> > har haft det beskrevne problem i PHP er det er dig selv der har kludret.
>
> I know, men forklar det til php. Den lavede fejlen som beskrevet.
>
> Den concatenerede noget som skulle adderes.
>
> Korrekt det kan være en fordel at de ikke er typefaste, men alle
> andre store sprog er typefaste. C,C++, Pascal, Delphi, Java osv.
> Selv assembler er.

Nu må du lige holde lidt igen. Nogle sprog er typefaste og andre er ikke.
Det har ikke noget med deres storhed eller udbredthed at gøre. Python og
Perl og Visual Basic er så vidt jeg ved ikke typefaste, og det har da ikke
afholdt dem fra at blive 'store'.
Typefasthed kan give både fordele og ulemper, og det kan diskuteres til
dommedag.

Men assembler er edderbankeme ikke typefast. Når man koder assembler er det
op til en selv at holde styr på om variabler er bytes, words, long,
pointere, floats eller hvad det nu kan være. Det er absolut ikke teknisk
muligt at se hvorvidt add.l #$20, d1 lægger 32 til en integer, eller ændrer
en pointer, eller justerer mantissa i et floating point tal.
Når man koder assembler så er der absolut ingen måde hvorpå man kan vurdere
om de data man behandler er af den korrekte type, man kan jo ikke engang se
om data er kode eller data.

Men skal vi nu ikke komme tilbage og snakke om java...

mvh
Peter Lind



Soren 'Disky' Reinke (27-09-2001)
Kommentar
Fra : Soren 'Disky' Reinke


Dato : 27-09-01 08:35

> Men assembler er edderbankeme ikke typefast. Når man koder
assembler er det

Så så sikke et grimt sprog du anvender.

> op til en selv at holde styr på om variabler er bytes, words,
long,
> pointere, floats eller hvad det nu kan være. Det er absolut
ikke teknisk
> muligt at se hvorvidt add.l #$20, d1 lægger 32 til en integer,
eller ændrer
> en pointer, eller justerer mantissa i et floating point tal.

Jo delvist. I dit eksempel adderer du #$20 til en 32 bit udgave
af d1, og d1 er ikke et floating point tal, da de på en MC68xxx
cpu hedder fp0-fp7 (hvis jeg husker rigtigt).

Og fp'erne kan f.eks. ikke bruges til memory addressering, det
kan d0-d7 godt men det tager længere tid end ved brug af a0-a7,
og kan kun lade sig gøre på mc68030 og og (måske kan 68020 også
er ikke sikker)

Du har også
..b
..w
..l
Som du til dels kan sidestille med forskellige længder på tal i
f.eks. Java, int,long osv.

> Når man koder assembler så er der absolut ingen måde hvorpå man
kan vurdere
> om de data man behandler er af den korrekte type, man kan jo
ikke engang se
> om data er kode eller data.

Korrekt, nu var det også mere ment som eksempel på at assembler
ikke begynder at tro noget er en streng når det ikke er.

>
> Men skal vi nu ikke komme tilbage og snakke om java...

Det kan vi godt.

--
With many Thanks

Soren ' Disky ' Reinke ICQ #1413069
http://www.disky-design.dk/fish
Remove IHSYD from email address when replying by email



Finn Nielsen (27-09-2001)
Kommentar
Fra : Finn Nielsen


Dato : 27-09-01 17:04

"Soren 'Disky' Reinke" <disky@disky-design.ihsyd.dk> writes:

> Korrekt, nu var det også mere ment som eksempel på at assembler
> ikke begynder at tro noget er en streng når det ikke er.

Det gør ikke typefaste sprog heller ikke. De gør hvad programmøren beder
dem om og udfører i visse tilfælde konverteringer for at kunne gøre hvad
programmøren beder om. Hvis noget bliver behandlet som en streng uden at
være det så er det programmøren der er dårlig/uerfaren/doven/whatever.

At PHP kan gøre noget andet end man tror hvis man sjusker er ikke værre
end når man i Java laver en

System.out.println("blah blah blah = " + variabelA + variabelB);

når man mener

System.out.println("blah blah blah = " + (variabelA + variabelB));

--
Finn Nielsen - http://www.zznyyd.dk/

Jonas Kongslund (26-09-2001)
Kommentar
Fra : Jonas Kongslund


Dato : 26-09-01 19:43

on Wednesday 26 September 2001 08:18, Soren 'Disky' Reinke
<disky@disky-design.ihsyd.dk> wrote:

> Har været ude for man har et tal i en variable (i java en int)
> Så vil man lægge et andet tal til, og så concatenerer den
> istedet, fordi den tror det er en streng :(

Nej, det sker ikke. PHP har ikke overloadet "+"-operatoren så den kan
opererer på strenge. PHP har en binær "."-operator, der opererer på strenge
og hvis funktion er at konkatenere operanderne.

Eksempler:

"4" + "7" = "11"
"4" . "7" = "47"

> En fortolker,compiler skal ikke forsøge at tænke.

PHP er altså ikke nondeterministisk i sin væremåde. Semantikken af dens
operatorer ligger fast og dem skal man blot kende og tænke på når man koder.

Der er både fordele og ulemper ved sprog som PHP. Visse opgaver kan
gennemføres hurtigere ved at benytte PHP frem for et strongly typed[*]
sprog såsom Java.

--
Jonas Kongslund <jonas@kongslund.dk> XNS: =Jonas Kongslund

Digital Rights - raising awareness of rights in the digital world
http://www.digitalrights.dk

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste