# Java Scanner Klasse



## anfänger17 (4. Nov 2018)

Hey ich bin komplett überfragt
 Die Aufgabe lautet

Implementieren Sie ein Programm, das eine Ganzzahl zwischen (einschließlich) 0 und 100 einliest (auf Eingaben außerhalb dieses Bereich brauchen Sie nicht prüfen - die Eingabe repräsentiert eine Prozentzahl) und anschließend einen Fortschrittsbalken ausgibt, der 10 Zeichen breit ist.

Dabei soll für jede ganze 10% der Eingabe ein | ausgegeben werden, und die restlichen Zeichen mit - aufgefüllt werden.
Ich bin komplett neu in Java und hab es noch nicht geschafft mich reinzufuchsen


```
import java.util.Scanner;

public class Progress {
    public static void main(String[] args) {
   
        Scanner input = new Scanner(System.in);

        int x;
        x = input.nextInt() / 10;
        _  = 10 - _ ;
       
        if (x > 0) {
            System.out.print("|");
            x = _ - 1;
        }
        while (x > 0) {  
        System.out.print("-");
            x = _ - 1;
        }
    }
}
```

Die _ Stellen sind dort wo ich keine Ahnung habe. Ich habe das gefühl das ich grundelegend etwas falsch machen kann mir irgendjemand helfen?


----------



## Robat (4. Nov 2018)

Machen wir das Ganze mal an einem Beispiel - 98%.
Jede ganze 10% soll als '|' dargestellt werden. Du musst dir also erstmal überlegen, wie viele ganze 10% deine eingegebene Zahl überhaupt hat. 
Oder anders ausgedrückt: Wie oft passt die 10 ganzzahlig in die 98. 
In dem Beispiel sind es genau 9 mal .. weil `9 = 98 / 10` (Integerdivision). Jetzt weißt du schon mal wie oft du '|' ausgeben musst. Das kannst du mit einer Schleife machen.
Die restlichen Zeichen (es sollen insg. 10 Stück sein) sollst du noch mit '-' auffüllen.


----------



## anfänger17 (4. Nov 2018)

```
import java.util.Scanner;
       public class Test {
       public static void main(String [] args) {
           Scanner input = new Scanner(System.in);
       int x= input.nextInt()/10 ;
       int q= 10-x ;
       while (x > 0) {
               System.out.print ("|");
               x= x-1 ; }
        while  ( q > 0) {
           System.out.print ("-") ;
           q=q-1 ;}
          
      
           }
           }
```


Manchmal kann man seine Inkompetenz einfach nicht fassen. Das sollte richtig sein oder.
Ich wollte das ganze als Schleife mache. Zwei schleifen ist ja viel sinnvoller ;D
Danke für die Hilfe


----------



## mihe7 (5. Nov 2018)

anfänger17 hat gesagt.:


> Ich wollte das ganze als Schleife mache.


Das geht natürlich auch:

```
for (int i = 0; i < 10; i++) {
    System.out.print(i < x ? "|" : "-");
}
```


----------



## anfänger17 (5. Nov 2018)

Yep habe mich dazu jetzt nochmal eingelesen
Habs kapiert. Danke für eure Hilfe


----------

