Skip to content

Commit 03276d6

Browse files
committed
misc chapter 13 stuff, breaks, exceptions and loops
1 parent 4b6468e commit 03276d6

7 files changed

Lines changed: 246 additions & 1 deletion

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package s4j.java.chapter13;
2+
3+
public class Breaks {
4+
public static void main(String... args) {
5+
for (int i = 0; i < 100; i++) {
6+
System.out.println(i);
7+
if (i == 10)
8+
break;
9+
}
10+
}
11+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package s4j.java.chapter13;
2+
3+
import java.io.BufferedReader;
4+
import java.io.IOException;
5+
import java.io.InputStreamReader;
6+
import java.net.MalformedURLException;
7+
import java.net.URL;
8+
9+
public class Exceptions {
10+
11+
public static void main(String... args) {
12+
try {
13+
URL url = new URL("http://baddotrobot.com");
14+
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
15+
try {
16+
String line;
17+
while ((line = reader.readLine()) != null)
18+
System.out.println(line);
19+
} finally {
20+
reader.close();
21+
}
22+
} catch (MalformedURLException e) {
23+
System.out.println("Bad URL");
24+
} catch (IOException e) {
25+
System.out.println("Problem reading data from the web: " + e.getMessage());
26+
}
27+
}
28+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package s4j.java.chapter13;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
public class Loops {
7+
8+
public static class Do {
9+
public static void main(String... args) {
10+
int i = 0;
11+
do {
12+
System.out.println(i);
13+
i++;
14+
} while (i < 10);
15+
}
16+
}
17+
18+
public static class While {
19+
public static void main(String... args) {
20+
int i = 0;
21+
while (i < 10) {
22+
System.out.println(i);
23+
i++;
24+
}
25+
}
26+
}
27+
28+
public static class For {
29+
public static void main(String... args) {
30+
for (int i = 0; i < 10; i++) {
31+
System.out.println(i);
32+
}
33+
}
34+
}
35+
36+
public static class EnhancedFor {
37+
public static void main(String... args) {
38+
List<Integer> numbers = Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
39+
for (Integer i : numbers) {
40+
System.out.println(i);
41+
}
42+
43+
numbers.forEach(i -> System.out.println(i));
44+
numbers.forEach(System.out::println);
45+
}
46+
}
47+
48+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package s4j.scala.chapter13
2+
3+
import scala.util.control.Breaks._
4+
5+
object Breaks extends App {
6+
var i: Int = 0
7+
breakable {
8+
while (i < 100) {
9+
System.out.println(i)
10+
if (i == 10)
11+
break()
12+
i += 1
13+
}
14+
}
15+
16+
breakable {
17+
for (i <- 0 to 100) {
18+
System.out.println(i)
19+
if (i == 10)
20+
break()
21+
}
22+
}
23+
}
24+
25+
26+
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
2+
package s4j.scala.chapter13
3+
4+
import java.io._
5+
import java.net.{MalformedURLException, URL}
6+
7+
8+
object Exceptions extends App {
9+
10+
autocloseExample()
11+
12+
def example2() = try {
13+
val url = new URL("http://baddotrobot.com")
14+
val reader = new BufferedReader(new InputStreamReader(url.openStream))
15+
try {
16+
var line = reader.readLine
17+
while (line != null) {
18+
line = reader.readLine
19+
println(line)
20+
}
21+
} finally {
22+
reader.close()
23+
}
24+
} catch {
25+
case _: MalformedURLException => System.out.println("Bad URL")
26+
case e: IOException => System.out.println("Problem reading data from the web: " + e.getMessage)
27+
}
28+
29+
def autoclose[A, B <: Closeable](resource: B)(f: => A): A =
30+
try {
31+
f
32+
} finally {
33+
resource.close()
34+
}
35+
36+
def autocloseExample() = {
37+
try {
38+
val url = new URL("http://baddotrobot.com")
39+
val reader = new BufferedReader(new InputStreamReader(url.openStream))
40+
autoclose(reader) {
41+
var line = reader.readLine
42+
while (line != null) {
43+
line = reader.readLine
44+
println(line)
45+
}
46+
}
47+
} catch {
48+
case _: MalformedURLException => System.out.println("Bad URL")
49+
case e: IOException => System.out.println("Problem reading data from the web: " + e.getMessage)
50+
}
51+
}
52+
53+
def try_[A, B <: Closeable](resource: B)(f: B => A): A =
54+
try {
55+
f(resource)
56+
} finally {
57+
resource.close()
58+
}
59+
60+
def autocloseExample2() = {
61+
try {
62+
val url = new URL("http://baddotrobot.com")
63+
try_(new BufferedReader(new InputStreamReader(url.openStream))) {
64+
reader => {
65+
var line = reader.readLine
66+
while (line != null) {
67+
line = reader.readLine
68+
println(line)
69+
}
70+
}
71+
}
72+
} catch {
73+
case _: MalformedURLException => System.out.println("Bad URL")
74+
case e: IOException => System.out.println("Problem reading data from the web: " + e.getMessage)
75+
}
76+
}
77+
78+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
package s4j.scala.chapter13
3+
4+
object Do extends App {
5+
var i = 0
6+
do {
7+
println(i)
8+
i += 1
9+
} while (i < 10)
10+
}
11+
12+
object DoWithFor extends App {
13+
var i = 0
14+
do {
15+
for (j <- 0 to i)
16+
print("*")
17+
print("\n")
18+
i += 1
19+
} while (i < 10)
20+
}
21+
22+
object While extends App {
23+
var i = 0
24+
while (i < 10) {
25+
println(i)
26+
i += 1
27+
}
28+
}
29+
30+
object ForAsAWhile extends App {
31+
var i = 0
32+
while (i < 10) {
33+
println(i)
34+
i += 1
35+
}
36+
}
37+
38+
object For extends App {
39+
for (i <- 0 to 10) {
40+
println(i)
41+
}
42+
43+
(0 to 10).foreach(i => println(i))
44+
(0 to 10).foreach(println(_))
45+
46+
}
47+
48+
49+
50+
51+
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1+
12
package s4j.scala.chapter13
23

34
object Ternary {
4-
val height = 90
55

6+
val height = 90
67
val tall = if (height > 190) "tall" else "not tall"
8+
9+
println(tall)
710
}

0 commit comments

Comments
 (0)