Java Scanner Klasse

anfänger17

Mitglied
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

Java:
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

Top Contributor
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

Mitglied
Java:
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
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Oben