Java Benutzereingabe ohne doppelten werten und alle zwischen 0 und 100?

2 Antworten

Lege dir die Eingaben in einem Array ab. Bei jeder neuen Eingabe läufst du einmal durch das Array und schaust, ob es den Wert bereits gibt.

Arman640 
Fragesteller
 29.09.2020, 10:41

ich habs versucht aber komme leider einfach nicht darauf

0
regex9  29.09.2020, 11:04
@Arman640

Dann zeige doch einmal deinen Versuch. Die Abfolge des Programms habe ich dir ja bereits beschrieben, nun dürfte es nur noch Syntaxfehler geben.

0
Arman640 
Fragesteller
 29.09.2020, 11:08
@regex9
import java.util.*;
public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int i = 0;
        int[] a = new int[9];
        do {
            System.out.println("Bitte geben Sie eine Zahl.");
            int user_input = sc.nextInt();
            if(user_input<=100 && user_input>=0 ){
                a[i] = user_input;

            }
            i++;
        }
        while(i<9);

    }
}
0
regex9  29.09.2020, 11:29
@Arman640
  1. Gib mal einen Variablen immer aussagekräftige, eindeutige Namen. Wenn du ein paar Tage später über den Quellcode schaust, und dort nur a, b und c liest, wirst du es schwerer haben, ihn wieder zu verstehen.
  2. Das fehlt dir noch: Bei jeder neuen Eingabe läufst du einmal durch das Array und schaust, ob es den Wert bereits gibt.
0
regex9  29.09.2020, 11:34
@regex9

Einen Ansatz, wie / mit welchen Mitteln du diesen Teil erfüllen kannst, würde ich zumindest erwarten.

0

Einfach alle eingegebenen Zahlen in einem HashSet speichern und vorher prüfen, ob die Zahl schon existiert.

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Informatik-Studium
Arman640 
Fragesteller
 29.09.2020, 10:30

Wir sind leider noch nicht so weit.

0
Christoph987  29.09.2020, 10:33
@Arman640
HashSet<Integer> zahlen = new HashSet<Integer>();

...

if(zahlen.add(user_input)) ++i;
0