Villkorssatser
Uppgift:
För att du ska få plats på ett företag ska två av följande villkor vara uppfyllda.
1. Du ska vara man
2. Du ska vara under trettio år.
3. Du ska inte ha barn.
Skriv ett program som skriver ut om du uppfyller kravet eller inte och skriv ut t.ex. "Eftersom du är man och under 30 år." Jag har gjort på detta sätt. Det känns inte riktigt rätt sätt att göra det på men funkar.
Ni som kan hur skulle ni ha gjort?
Ett problem med det där är att man måste skriva in två alternativ som stämmer på en, då kan måste man så att säga alltid bli godkänd. Så testa ha andra input alternativ istället, så man kan svara på frågorna "Är du man?", "Hur gammal är du?", "Har du barn?". Sedan utifrån svaren på dessa så skriver du ut resultatet istället.
Stokastisk skrev :Ett problem med det där är att man måste skriva in två alternativ som stämmer på en, då kan måste man så att säga alltid bli godkänd. Så testa ha andra input alternativ istället, så man kan svara på frågorna "Är du man?", "Hur gammal är du?", "Har du barn?". Sedan utifrån svaren på dessa så skriver du ut resultatet istället.
Aha okej du tänker så. Men blir det inte ja eller nej fråga då? För det jag tänker mig då är:
Är du man? (Svar: Ja/nej)
.... svar1 = input....
osv till svar3
Men använder man sig av if-else då? för förstår inte hur man ska kunna säga om det är sant eller falsk?
barcode skrev :Stokastisk skrev :Ett problem med det där är att man måste skriva in två alternativ som stämmer på en, då kan måste man så att säga alltid bli godkänd. Så testa ha andra input alternativ istället, så man kan svara på frågorna "Är du man?", "Hur gammal är du?", "Har du barn?". Sedan utifrån svaren på dessa så skriver du ut resultatet istället.
Aha okej du tänker så. Men blir det inte ja eller nej fråga då? För det jag tänker mig då är:
Är du man? (Svar: Ja/nej)
.... svar1 = input....
osv till svar3
Men använder man sig av if-else då? för förstår inte hur man ska kunna säga om det är sant eller falsk?
Du kan avgöra om man svarade ja på fråga ett genom att skriva
svar1.equalsIgnoreCase("ja")
Detta kommer vara true om man skriv in ja, och false annars. Samma så kan du skriva
svar2 < 30
för att se om man svarade att man var under 30.
Aha okej jag förstår. Men funkar det också om man skriver t.ex Ja det är jag. Eller måste svaret vara bara "ja"?
Det kommer bara fungera om du skriver ja, Ja, jA eller JA.
Kul att du börjat programmera. Det kommer du alltid ha nytta av även om du inte direkt programmerar. Det är ett nyttigt tankesätt. Eftersom du precis börjar skulle jag rekommendera dig att undvika alla konstruktioner med "if-then-else" om möjligt. En sådan kod med if-then-else är svår att följa och leder lätt till buggar. Jag inser självklart att det känns naturligt för dig att bygga upp programmet så men det finns alternativ. Här kommer ett litet java-program där du själv får ändra i för att testa de olika utfallen. Om du förstår principen kan du skriva ett betydligt snyggare och effektivare program själv:
package pluggakuten;
public class Pluggakuten
{
private static final int MAN = 1;
private static final int UNDER30 = 1;
private static final int NOCHILDREN = 1;
public static void main(String[] args)
{
String sorry = "";
String result = "godkänd";
//
// Kommentera alla utom en för att testa
//
// int criteria = MAN + UNDER30 + NOCHILDREN;
// int criteria = NOCHILDREN + UNDER30;
int criteria = UNDER30;
if (criteria < 2)
sorry = "inte ";
System.out.println(sorry + result);
}
}
Tack för svaret PeterÅ. Ska se över det när jag kommer hem!