System.out.println("Ange belopp:");
intBelopp = Integer.parseInt(stdin.readLine());
if ((intBelopp/100) != Integer.parseInt(intBelopp/100) )
{
Här kommer felhantering....
}
Kanske?
7 svar · 481 visningar · startad av Blårand
Ä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?
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 :)
Notera den superviktiga detaljen att spango kastade ungersk notation åt fanders. :D
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!
Att jämföra strängar görs med fördel med equals()
String.valueOf(intBelopp).substring(intLength-2,intLength).equals("00")
Bra, tack då vet jag! Ska lägga detta på minnet. :)
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 ;)