Sterne mit If

SanVolv

Mitglied
Hallo Zusammen.

Das ist die Aufgabe:

  • * *
  • * *
  • * * * * * * * *
  • * * * * * * * *
  • * *
  • * *

Ich bekomme es einfach nicht hin die MItte zu erstellen...
Wie kann man das am Besten schreiben?




Java:
public class sterneA {

    public static void main(String[] args) {
        
        
        
        for (int i=1; i<=5; i++ )
        {
            System.out.print("*");
        
        for (int j=1; j<2; j++ )
        {   
            System.out.print("*");
            
                
        }
        System.out.println("*");
        }
    
        }
    }
 

Oneixee5

Top Contributor
Java:
System.out.println("**\n**\n********\n********\n**\n**");
Aber im Ernst: Wie ist denn die genaue Aufgabe? Du sollst Schleifen üben aber es muss ja noch irgend welche Bedingungen geben.
 

temi

Top Contributor
Ich geh mal davon aus, dass die Aufzählungspunkte nicht dazu gehören.
Code:
* *
* *
* * * * * * * *
* * * * * * * *
* *
* *
Schau dir einfach erst mal das Muster an. Könntest du den Code für das folgende Muster schreiben?
Code:
* *
* *
* *
* *
* *
* *
An welchen Stellen ist der Unterschied? Siehst du evtl eine Regel: Wenn ... dann ...?

Kannst du den vorherigen Code entsprechend erweitern?
 

SanVolv

Mitglied
Ich geh mal davon aus, dass die Aufzählungspunkte nicht dazu gehören.
Code:
* *
* *
* * * * * * * *
* * * * * * * *
* *
* *
Schau dir einfach erst mal das Muster an. Könntest du den Code für das folgende Muster schreiben?
Code:
* *
* *
* *
* *
* *
* *
An welchen Stellen ist der Unterschied? Siehst du evtl eine Regel: Wenn ... dann ...?

Kannst du den vorherigen Code entsprechend erweitern?
Java:
    public static void main(String[] args) {
       
       
   
        for (int i=1; i<=4; i++ )
        {
            System.out.print("*");
       
        for (int j=1; j<=1; j++ )
        {  
            System.out.println("*");
    
           
               
        }
        }
   
        }
   
}

Ich hab mich bei der Überschrift leider vertan. Es sollte For sein und kein If... Tut mir leid
 

temi

Top Contributor
Du solltest dringend an deinen Einrückungen arbeiten. Die sind so wie sie jetzt sind völlig unbrauchbar.
Java:
    public static void main(String[] args) {

        for (int i=1; i<=4; i++ ) {
          
            System.out.print("*");
    
            // die Schleife ist ziemlicher Unsinn. Kannst du gleich println() schreiben, um einmal einen Stern auszugeben
            for (int j=1; j<=1; j++ ) {
                System.out.println("*");
            }
        }
 
    }

Sollt ihr ausschließlich for-Schleifen verwenden? Oder in Kombination mit if-Bedingungen?
 

SanVolv

Mitglied
Du solltest dringend an deinen Einrückungen arbeiten. Die sind so wie sie jetzt sind völlig unbrauchbar.
Java:
    public static void main(String[] args) {

        for (int i=1; i<=4; i++ ) {
         
            System.out.print("*");
   
            // die Schleife ist ziemlicher Unsinn. Kannst du gleich println() schreiben, um einmal einen Stern auszugeben
            for (int j=1; j<=1; j++ ) {
                System.out.println("*");
            }
        }
 
    }

Sollt ihr ausschließlich for-Schleifen verwenden? Oder in Kombination mit if-Bedingungen?
Danke für den Tipp mit den Einrücken
Leider sind wir die Aufgaben nicht durchgegangen, aber so wie ich es lese, soll es nur for-schleifen sein..
Hab schon viel rumprobiert, allerdings keine richtige Lösung gefunden...
 

KonradN

Super-Moderator
Mitarbeiter
Bei so Aufgaben ist es immer wichtig, sich zuerst zu überlegen, wie denn die einzelnen Schritte sind.

Bleiben wir bei dem einfacheren Beispiel von temi mit 2 Sternen pro Zeile:
6 Zeilen a 2 Sterne

Also ist das nichts anderes, als 6 mal eine Zeile mit 2 Sternen zu malen.

Damit hast Du es schon in zwei Teile aufgeteilt.

a) 6 Zeilen sollen gemalt werden. Das kriegt man über eine Schleife hin.
b) In der Schleife werden dann die Zeilen gemalt - das wäre dann eine Schleife, die halt 2 mal durchläuft und ein Sternchen malt. Danach erst wird ein Zeilenumbruch geschrieben.

Wenn Du das hast, dann kannst Du Dir überlegen, wie Du die Aufgabenstellung hin bekommst. Du malst immer 2 Sternchen außer du bist in bestimmten Zeilen ... da malst du dann eben mehr Sternchen pro Zeile.

Edit: Ich hoffe Du merkst, dass man sich sowas als erstes ohne Computer und Java überlegen kann! Das ist das A und O beim Programmieren! Als erstes überlegen, wie denn der Algorithmus funktionieren soll! Man kann nicht einfach drauf los programmieren - da ist die Chance, dass schlicht nur Müll rauskommt, extrem hoch!
 

temi

Top Contributor
Wenn Du das hast, dann kannst Du Dir überlegen, wie Du die Aufgabenstellung hin bekommst. Du malst immer 2 Sternchen außer du bist in bestimmten Zeilen ... da malst du dann eben mehr Sternchen pro Zeile.
Der Teil ist abhängig davon, ob if-Bedingungen erlaubt sind. Ansonsten dürfen eben nicht sechs Zeilen mit zwei Sternen, sondern es muss eine andere Aufteilung/Zusammenfassung gewählt werden.
 

KonradN

Super-Moderator
Mitarbeiter
Der Teil ist abhängig davon, ob if-Bedingungen erlaubt sind. Ansonsten dürfen eben nicht sechs Zeilen mit zwei Sternen, sondern es muss eine andere Aufteilung/Zusammenfassung gewählt werden.
Es ist nicht explizit verboten worden und wie würdest Du es ohne eine Bedingung sonst machen? Einfach drei mal zwei Zeilen malen? Dann kann man auch einfach um die Lösung aus #2 eine for Schleife machen, die eben 1 mal durchläuft.
 

SanVolv

Mitglied
Der Teil ist abhängig davon, ob if-Bedingungen erlaubt sind. Ansonsten dürfen eben nicht sechs Zeilen mit zwei Sternen, sondern es muss eine andere Aufteilung/Zusammenfassung gewählt werden.
Das weiß ich leider auch nicht. Die Aufgabenstellung steht oben, daher bin ich davon ausgegangen, dass man es nur mit for machen sollte...
Leider komm ich nicht drauf, wiie ich es anstellen könnte... :(
 

KonradN

Super-Moderator
Mitarbeiter
Schreiben Sie Programme mit geschachtelten for-Schleifen, die folgende
Muster ausgeben:
Da steht nichts von if nicht erlaubt. Da steht etwas von verschachtelten for Anweisungen.

Außerdem kann man jedes if ein ein for verwandeln, wenn man das wollte:
Java:
for (;<BedingungAusIf>; ) { //<BedingungAusIf> ist das, was man in den (..) beim if hätte!
    // Was im if Block steht
    break; // Schleife nach einem Durchlauf verlassen.
}
Diese Diskussion ist also schlicht Quatsch. Es geht um das Nutzen von for Schleifen, diese müssen verschachtelt sein und das ist mit so einem Ansatz erfüllt.

Ansonsten frage ich mich: Was soll jemand lernen, wenn man das explizit bei der Aufgabe verbieten würde? So Aufgaben hat ja jemand erstellt, der sich etwas dabei gedacht hat ...
 

MarvinsDepression

Bekanntes Mitglied
Beschreibe das Muster in Worten:
Zwei mal ein Stern nebeneinander, dann neue Zeile. Das mache zwei mal.
Acht mal ein Stern nebeneinander, dann neue Zeile. Das mache zwei mal.
Zwei mal ein Stern nebeneinander, dann neue Zeile. Das mache zwei mal.

jedes "mal" steht für eine Schleife, durchaus auch eine "for"-Schleife.
 

Neue Themen


Oben