Gäller alla hemuppgifter : Du skall veta vilka ord i ditt program som är reserverade ord (Keywords), och vilka som är identifierare, och vad identifierarna betecknar för slags programelement ( t ex namn på metoder, namn på lokal variabel i metod,namn på klass osv.).

1.CBA-Hemuppgift:

I en korrekt programmerad while-snurra måste det hända något i snurrans underordnade satser som gör att villkoret så småningom blir osant (om villkoret sant första gången), annars görs satserna i snurran i all oändlighet och programmet tar aldrig slut:

while ( /* villkor */ ) {

//Här måste det nån gång ske något som gör villkoret osant vid nästa test

}

Men ibland gör man oavsiktligt fel så att villkoret alltid är sant, och då måste man under körningen trycka styr-C ("kontroll-C") för att få stopp på programmet. Programmet sägs innehålla en oändlig snurra (inifinite loop).

Skriv en applikation vars main-metod innehåller en oändlig snurra, som varje varv ökar en heltalsvariabel t med 1 och skriver ut värdet på t i terminalfönstret. Låt snurran också innehålla satsen

Thread.sleep(1000);

som får programkörningen att "sova" (stå stilla) i 1 s = 1000 ms. För att programmet skall gå att kompilera måste main-rubriken se ut så här:

public static void main(String [] arg ) throws Exception {

Förslag till utskrift (efter 3 s tröttnar användaren och trycker styr-C vilket datorn automatiskt skriver ut som ^C) :

...>java InfiniteLoop

Tid : 1 s

Tid : 2 s

Tid : 3 s

^C

..>java

2. CBA-Hemuppgift:

I nedanstående program måste datorn testa alla tre villkoren i if-satserna:

import javax.swing.JOptionPane;

public class ControlStructuresB {

public static void main(String [] arg ) {

System.out.println("Program som jämför två tal i och j.");

int i = 0;

i = Integer.parseInt(JOptionPane.showInputDialog("Enter integer i"));

int j = 0;

j = Integer.parseInt(JOptionPane.showInputDialog("Enter integer j"));

System.out.println();

System.out.print (" i = " + i + " j = " + j + " ");

//Klumpigt sätt med if

if (j < i ) {

System.out.print( "j<i ");

}

if (j == i) {

System.out.print( "j==i");

}

if (i < j) {

System.out.print( "i<j ");

}

System.out.print(" ");

}

Skriv om ovanstående program med if-else så att progammet testar som mest två villkor.

3.A-Hemuppgift:

Skriv om ovanstående program så att det inte använder if eller if-else utan enbart ? : -operatorn i

tre anrop till System.out.print( ..).

4.A-Hemuppgift:

Skriv om ovanstående program så att det inte använder if eller if-else utan enbart ? : -operatorn i

ett enda anrop till System.out.print( ..).

5. CBA-Hemuppgift:

Komplettera din lösning till uppgift 2 (ControlStructuresB) med en for-loop så att inmatningarna och utmatningen sker tio gånger innan programmet avslutas.

6. CBA-Hemuppgift:

Komplettera din lösning till uppgift 2 ( ControlStructuresB) med en while-loop så att inmatningarna och utmatningen sker gång på gång tills användaren ger värdet 0 till i.

7.BA-Hemuppgift:

Skriv med hjälp av Java:s switch-kommando en applikation som frågar användaren efter hur många barn hon/han har. Programmet skriver sedan ut, beroende på antalet barn (1, 2, eller >2) , någon av följande texter:

"Hälsa barnet"

"Hälsa båda barnen!"

"Häsa alla barnen"

Har personen inget barn skrivs inget ut. För att uppgiften skall räknas som en A-uppgift skall programmet

fråga efter antalet barn tills användaren ger ett icke-negativt tal (dvs 0 eller ett positivt tal) som svar.

8. A-Hemuppgift:

Detta program skriver ut abababababababababa :

public static void main(String [] arg ) {

int i = 0;

while ( i < 10) {

System.out.print("a");

if (i < 9) {

System.out.print("b");

}

i = i+1;

}

}

}

Skriv om programmet så att snurran inte innehåller någon alternativsats (varken if, if-else eller switch).