BlårandMedlem sedan jan. 20032 356 inlägg Är nybörjare i ämnet, men någonstans måste man ju börja.
En användare matar in ett tal. Talet får enbart vara i jämna 100-tal. För att lösa problemet tänkte jag göra om det inmatade talet till en sträng, och först se om talet innehåller minst tre tecken. Därefter tar jag ut de två sista tecknen i strängen för att se om det slutar på "00". Om strängen inte slutar på "00", så är det inte ett jämnt 100-tal användaren matat in, och då ska ett felmeddelande visas.
System.out.println("Ange belopp:");
intBelopp = Integer.parseInt(stdin.readLine());
intLength = String.valueOf(intBelopp).length();
if (intLength>2 && String.valueOf(intBelopp).substring(intLength-2,intLength)!="00")
{
Här kommer felhantering....
}
Har använt ovanstående lilla, mycket enkla kodsnutt, som trots sin enkelhet ändå inte blir som jag vill ha den.
Oavsett vilket tal användaren skriver som är större än 100, så hamnar jag i if-satsen. Koden ovan borde väl göra så att jag enbart hamnar i if-satsen om det inmatade talet/strängen innehåller mer än två tecken, och inte slutar på "00", dvs är ett jämnt 100-tal?
System.out.println("Ange belopp:");
intBelopp = Integer.parseInt(stdin.readLine());
if ((intBelopp/100) != Integer.parseInt(intBelopp/100) )
{
Här kommer felhantering....
}
Kanske?
spangoMedlem sedan juni 20008 205 inlägg Re: If-sats, jämförelse...
Blårand skrev:
En användare matar in ett tal. Talet får enbart vara i jämna 100-tal. För att lösa problemet tänkte jag göra om det inmatade talet till en sträng, och först se om talet innehåller minst tre tecken.
Så kan du göra, men det sättet en Riktig Programmerare löser det på är med %-operatorn, d.v.s. modulus, d.v.s. rest vid heltalsdivision. Uttrycket x % 100 resulterar i 0 om x är ett jämnt hundratal, alltså:
System.out.println("Ange belopp:");
int belopp = Integer.parseInt(stdin.readLine());
if ((belopp % 100) == 0){
// luser attitude readjustment code
}
Enklare och effektivare :)
K@llenMedlem sedan mars 20032 667 inlägg Notera den superviktiga detaljen att spango kastade ungersk notation åt fanders. :D
BlårandMedlem sedan jan. 20032 356 inlägg Re: Re: If-sats, jämförelse...
spango skrev:
Så kan du göra, men det sättet en Riktig Programmerare löser det på är med %-operatorn, d.v.s. modulus, d.v.s. rest vid heltalsdivision. Uttrycket x % 100 resulterar i 0 om x är ett jämnt hundratal, alltså...
Tack för exemplet, det fungerade utmärkt. :)
Men för nyfikenhetens skull, borde inte även mitt exempel i det första inlägget, fungera även det? Vad är det som är fel i den satsen? Skulle bara vara kul att veta, så att man kan lära sig lite på samma gång. :)
Tack för hjälpen med svaret!
Mc FettoMedlem sedan nov. 20022 355 inlägg Att jämföra strängar görs med fördel med equals()
String.valueOf(intBelopp).substring(intLength-2,intLength).equals("00")
BlårandMedlem sedan jan. 20032 356 inlägg Bra, tack då vet jag! Ska lägga detta på minnet. :)
spangoMedlem sedan juni 20008 205 inlägg
K@llen skrev:
Notera den superviktiga detaljen att spango kastade ungersk notation åt fanders. :D
Snyggt. Jag tänkte vara lite hemlig sådär, men det är fint att du påpekade det ;)