programmet tar reda på om det tecken som är lagrat i variabeln symbol är en versal mellan A och Z, en gemen mellan a & z eller ngt annat tecken
Följande kod
public class BokstavsKontroll {
public static void main(String[] args)
{
char symbol = 'A';
symbol = (char)(128.0*Math.random()); //Skapa ett slumptecken
if (symbol >= 'A') //Ärdet A eller högre?
{
if (symbol <= 'Z') //ja, är det Z eller högre?
// Då är det en versal
System.out.println("Du har versalen " + symbol + " = " + 128*Math.random());
else
if (symbol >= 'a')
if (symbol <= 'z')
//då är det en gemen
System.out.println("Du har gemen " + symbol + " = " + 128*Math.random());
else
System.out.println("Koden är högre än a och inte en bokstav ");
else
System.out.println("Koden är lägre än a och inte en bokstav ");
}
else
System.out.println("Koden är lägre än A och inte en bokstav ");
}
}
Nog för att den slumbar ut tal och och skriver om de är versaler eller inte,men som ni ser stämmer inte siffrorna med "min" ASCII-kod - iaf inte den ver som finns i boken...
tex har jag fått
alltså att man inte försämrar precisionen genom att först casta till int, och sen casta till char.... Man kan kanske anta att char precis som int klipper bort decimalerna... och då är det inget problem.. men om char t.ex avrundar uppåt eller till närmsta heltal kan det bli problem.
För att va på den säkra sidan kan man ju casta talet till en double eller float i stället för int... då kan du ju dessutom skriva ut med alla decimalerna...
spara undan 128*Math.random() i en int-variabel eller nåt
int taletISiffror = (int)(128*Math.random());
och gör sen:
symbol = (char)taletISiffror;
och skriv slutligen ut :
("Du har versalen " + symbol + " = " + taletISiffror);
Jag är ingen expert, men detta borde väl funka?
257 ms totalt · 4 externa anrop · v20260731065814-full.5386d3bf