Geht es vielleicht viel kürzer?

Diskutiere Geht es vielleicht viel kürzer? im Java Basics - Anfänger-Themen Bereich.
P

Panda9296

Java:
int width= 25;
        int heigth= 9;
        int hyphenLength=19;
        int hyphenStart= width-hyphenLength;

       OUT: for(int i=0;i<heigth;i++)
        {
         INNER:for(int j=0;j<width;j++)
            {
            switch (i)
            {
                case 0:
                    if(j==0)
                    {
                    System.out.print("X");continue INNER;
                    }
                    if(j>0&j<hyphenStart||j>7&j<11)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                        System.out.print("x\u00B2");continue INNER;
                    }
                    if(j==11)
                    {
                        System.out.print("x\u00B3");

                    }break;
                case 1:
                    if(j<hyphenStart-1)
                    {
                        System.out.print(" ");
                    }
                    if(j>=hyphenStart&j<=hyphenLength){
                        System.out.print("-");
                    }break;
                case 2:
                    if(j==0)
                    {
                    System.out.print(1);
                    }
                    if(j>0&j<hyphenStart||j>7&j<11)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                    squareNumber(i);
                    }
                    if(j==11)
                    {
                        numberN3(i);
                    }break;
                case 3:
                    if(j==0)
                    {
                    System.out.print(2);
                    }
                    if(j>0&j<hyphenStart||j>7&j<11)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                        squareNumber(i);
                    }
                    if(j==11)
                    {
                        numberN3(i);
                    }break;
                case 4:
                    if(j==0)
                    {
                    System.out.print(3);
                    }
                    if(j>0&j<hyphenStart||j>7&j<11)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                        squareNumber(i);
                    }
                    if(j==11)
                    {
                        numberN3(i);
                    }break;
                case 5:
                    if(j==0)
                    {
                    System.out.print(4);
                    }
                    if(j>0&j<hyphenStart||j>7&j<10)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                        squareNumber(i);
                    }
                    if(j==11)
                    {
                        numberN3(i);
                    }break;
                case 6:
                    if(j==0)
                    {
                    System.out.print(5);
                    }
                    if(j>0&j<hyphenStart||j>7&j<10)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                        squareNumber(i);
                    }
                    if(j==11)
                    {
                        numberN3(i);
                    }break;
                case 7:
                    if(j==0)
                    {
                    System.out.print(6);
                    }
                    if(j>0&j<hyphenStart||j>7&j<10)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                        squareNumber(i);
                    }
                    if(j==11)
                    {
                        numberN3(i);
                    }break;
                case 8:
                    if(j==0)
                    {
                    System.out.print(7);
                    }
                    if(j>0&j<hyphenStart||j>7&j<10)
                    {
                        System.out.print(" ");continue INNER;
                    }
                    if(j==7)
                    {
                        squareNumber(i);
                    }
                    if(j==11)
                    {
                        numberN3(i);
                    }break;
            }
            if(j==width-1)
            {
                 System.out.println();
            }


            }
        }

   }
public static void squareNumber(int index){
       System.out.print((int)Math.pow((index-1),2));
   }
   public static void numberN3(int index)
   {
       System.out.print((int)Math.pow((index-1),3));
   }
X x² x³
--------------
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343

Process finished with exit code 0
Die Abstände sind so wie sie sein sollen in der Konsole^^. Bzw. so wie sie vorgegeben waren. Mir gefällt der Code nur nicht und ich suche nach einer kürzeren Lösung.
 
H

httpdigest

Was... zur... Hölle...?

Die Aufgabe ist einfach, die Zeile "X x² und x³" sowie "--------------" auszugeben, gefolgt von jeweils drei Zahlen, die eben x, x*x und x*x*x sind?
Wie um alles auf der Welt kommt man dann auf die Lösung, die du da gebaut hast?
Nicht böse gemeint, aber das ist wirklich ziemlich abgefahren. :)
 
H

httpdigest

Da gebe ich @BestGoalkeeper Recht. Aktuell sähe eine kürzere Lösung, die deinen gezeigten Output ebenfalls generiert, so aus:
Java:
public class Table {
  public static void main(String[] args) {
    System.out.println("X x² x³");
    System.out.println("--------------");
    int N = 7;
    for (int x = 1; x <= N; x++)
      System.out.println(x + " " + x * x + " " + x * x * x);
  }
}
 
H

httpdigest

Vielleicht meinst du auch sowas wie das hier:
Java:
public class Table {
  private static String padLeft(int s, int n) {
    return String.format("%" + n + "s", s);  
  }
  public static void main(String[] args) {
    System.out.println("X     x²    x³");
    System.out.println("--------------");
    int N = 7, padding = 6;
    for (int x = 1; x <= N; x++)
      System.out.println(x +
                         padLeft(x * x, padding) +
                         padLeft(x * x * x, padding));
  }
}
 
P

Panda9296

Erstellen Sie ein ausführbares Programm mit dem Namen PotenzenTabelle.java. Das Programm soll unten stehende Bildschirmausgabeerzeugen:
X x² x³
-------------------
1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
Hinweis: Sie könnten durch eine weitere Schleife auch die 19 Bindestriche erzeugen. .... ich sollte das alles in Verzweigungen und schleifen lösen . Ich weiß nicht ob man es sieht, aber die Bindestriche sollen dann bei x^2 anfangen -.- . Ich hab wohl etwas kompliziert gedacht
 
B

BestGoalkeeper

Du musst diese Bildschirmausgabe in Code-Tags legen, sonst sieht man die Leerzeichen ja nicht.
 
Thema: 

Geht es vielleicht viel kürzer?

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben