Enkla typer
Följande klass skapar ett antal variabler av olika typer, och skriver sedan
ut några av dem.
public class SimpleTypes {
public static void main(String[] args) {
int a = 15;
int b = 4;
int c = a / b;
System.out.println(c);
double x = 15;
double y = 4;
double z = x / y;
System.out.println(z);
boolean p = true;
boolean q = false;
boolean r = p && (q || q);
boolean s = (p && p) || q;
System.out.println(r);
System.out.println(s);
}
}
-
Vad skriver programmet ut?
-
Vad heter filen som ovanstående kod är tagen från?
Villkorssatser
Följande program utför ett antal villkorssatser (if-satser). Beroende på hur
dessa satser utvärderas skrivs olika saker ut.
public class If {
public static void main(String[] args) {
int a = 100;
int b = 400;
if (a < b) {
System.out.println(a + " < " + b);
} else {
System.out.println("Algol inte sämre än Basic");
}
if (a > b) {
System.out.println(a + " > " + b);
} else {
System.out.println("a=" + a + ", b=" + b + ", a > b = false");
}
if (a != b) {
System.out.println(a + " != " + b);
} else {
System.out.println(a + " == " + b);
}
}
}
-
Vad heter filen som ovanstående kod är tagen från?
-
Vad skriver programmet ut?
Vektorer och Loopar
public class Loop {
public static void main(String[] args) {
String suffix = "ur";
String[] icelandic = new String[args.length];
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
icelandic[i] = args[i] + suffix;
}
System.out.println();
for (int i = 0; i < icelandic.length; i++) {
System.out.println(icelandic[i]);
}
System.out.println();
String[] newArgs = prependString(args, "first");
for (int i = 0; i < newArgs.length; i++) {
System.out.println(newArgs[i]);
}
}
public static String[] prependString(String[] strings, String s) {
String[] newStrings = new String[strings.length + 1];
newStrings[0] = s;
for (int i = 0; i < strings.length; i++) {
newStrings[i + 1] = strings[i];
}
return newStrings;
}
}
-
Givet att vi kör programmet enligt följande:
$ java Loop ett två tre
vad skriv ut?
-
Titta närmare på nedanstående rad.
public static String[] prependString(String[] strings, String s) {
Identifiera (ringa in ovan) vad som svarar mot följande termer:
- Returtyp
- Metodnamn
- Argumentlista
Hur skulle du läsa ut returtypen på svenska (techno-anglifierad svenska går också bra)?
Listor och mängder
import java.util.List;
import java.util.Set;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Scanner;
public class ListSet {
private List list;
private Set set;
public ListSet() {
list = new ArrayList();
set = new HashSet();
}
public void addToken(String token) {
list.add(token);
set.add(token);
}
public void addTokens(Scanner s) {
while (s.hasNext()) {
addToken(s.next());
}
}
public void summarize() {
System.out.println(set.size() + " / " + list.size());
// System.out.println(set.size() / list.size());
System.out.println((double)set.size() / list.size());
}
}
import java.util.Scanner;
public class ListSetTest {
public static void main(String[] args) {
ListSet ls = new ListSet();
ls.addTokens(new Scanner(System.in));
ls.summarize();
}
}
-
Givet att vi kör programmet
ListSetTest och matar följande till standard input:
Får får får ?
Nej får får inte får .
Får får lamm .
Vad skrivs ut?
-
Om du skulle vilja använda
LinkedList istället för ArrayList,
vilka förändringar skulle du behöva göra? (Svara genom att ändra i programlistningarna ovan.)
-
Om du vill spara in på antalet rader i
ListSet, hur skulle du kunna omformulera
import-satserna så att de sammantaget tar upp färre rader?