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 kysyy käyttäjältä lukua ja kertoo luvun indeksin. Mikäli lukua ei löydy, ohjelman ei tule kertoa siitä. Jos etsitty luku löytyy listalta monesta kohdasta, tulee kaikki indeksit tulostaa omilla riveillään.
Example output:
Syötä kokonaislukuja listalle (-1 lopettaa):
72
2
8
8
11
-1
Mitä lukua etsitään? 8
Luku 8 on indeksissä 2
Luku 8 on indeksissä 3
Pohja: https://github.com/swd1tn002/mooc.fi-2019-osa3/blob/master/src/tehtava10/KysytynLuvunIndeksi.java
KysytynLuvunIndeksi.java
/* Tässä ei ole käytetty valmista pohjaa */
import java.util.ArrayList;
import java.util.Scanner;
public class KysytynLuvunIndeksi {
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("Mitä lukua etsitään? ");
int etsiLuku = syote.nextInt();
for (i = 0; i < lukulista.size(); i++) {
if (lukulista.get(i) == etsiLuku) {
System.out.printf("Luku %s on indeksissä %s\n", etsiLuku, i);
}
}
} catch (NumberFormatException e) {
errorInvalidIntegerInput();
}
}
private static void errorInvalidIntegerInput() {
System.err.println("Antamasi syöte ei ole kokonaisluku");
System.exit(1);
}
}