7 svar
748 visningar
barcode är nöjd med hjälpen
barcode 162 – Avstängd
Postad: 10 jul 2017 20:35

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?

 

Stokastisk 3597 – Fd. Medlem
Postad: 10 jul 2017 20:54

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.

barcode 162 – Avstängd
Postad: 10 jul 2017 21:01
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? 

Stokastisk 3597 – Fd. Medlem
Postad: 10 jul 2017 21:13
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. 

barcode 162 – Avstängd
Postad: 10 jul 2017 21:19

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"?

Stokastisk 3597 – Fd. Medlem
Postad: 10 jul 2017 21:22

Det kommer bara fungera om du skriver ja, Ja, jA eller JA.

PeterÅ 842
Postad: 20 jul 2017 18:11 Redigerad: 20 jul 2017 18:12

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);
 }
}

barcode 162 – Avstängd
Postad: 20 jul 2017 18:31

Tack för svaret PeterÅ. Ska se över det när jag kommer hem!

Svara Avbryt
Close