Ohjelmaan on toteutettu valmiina pohja, joka lukee käyttäjältä lukuja listalle. Syötteiden lukeminen päätetään kun käyttäjä syöttää luvun -1.
Lisää ohjelmaan toiminnallisuus, joka lukujen lukemisen jälkeen kysyy käyttäjältä alkuindeksiä ja loppuindeksiä. Tämän jälkeen ohjelman tulostaa listalla olevat luvut käyttäjän syöttämien indeksien välillä. Voit olettaa, että käyttäjä syöttää indeksit, jotka löytyvät listalta.
Pohja: https://github.com/swd1tn002/mooc.fi-2019-osa3/blob/master/src/tehtava08/LuvutRajatullaAlueella.java
Example output:
Syötä kokonaislukuja listalle (-1 lopettaa):
72
2
8
11
-1
Mistä? 0
Mihin? 2
72
2
8
LuvutRajatullaAlueella.java
/* Tässä ei ole käytetty valmista pohjaa */
import java.util.ArrayList;
import java.util.Scanner;
public class LuvutRajatullaAlueella {
public static void main(String[] args) {
Scanner syote = new Scanner(System.in);
int i;
ArrayList<Integer> lukulista = new ArrayList<Integer>();
System.out.println("Syötä kokonaislukuja listalle (-1 lopettaa):");
while (true) {
try {
int luku = syote.nextInt();
if (luku == -1) {
break;
}
lukulista.add(luku);
} catch (NumberFormatException e) {
errorInvalidIntegerInput();
}
}
try {
System.out.print("Mistä? ");
int startInt = syote.nextInt();
System.out.print("Mihin? ");
int endInt = syote.nextInt();
for (i = 0; i < lukulista.size(); i++) {
if (i >= startInt && i <= endInt) {
System.out.println(lukulista.get(i));
}
}
} catch (NumberFormatException e) {
errorInvalidIntegerInput();
}
}
private static void errorInvalidIntegerInput() {
System.err.println("Antamasi syöte ei ole kokonaisluku");
System.exit(1);
}
}