Java While Schleife, Zahlenreihe mit Additionen?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
int faktor = 1;
int zahl = 2;
while(faktor < 11)
{
  System.out.print(faktor * zahl);
  System.out.print(" ");
  faktor++;
}

Als Übung könntest du mal probieren, das ganze ohne Multiplikationen durchzuführen ;)


xJumax 
Beitragsersteller
 21.08.2020, 11:14

Es hat endlich funktioniert, vielen Dank für die Hilfe! :)

Darf ich noch ganz kurz fragen was der Zweck des zweiten leeren System.out.print (" "); ist?

0
MagicalGrill  21.08.2020, 11:15
@xJumax

Du kannst es ja mal probehalber weglassen und schauen, was passiert ;)

0
SkySurver  22.08.2020, 01:06
@MagicalGrill

Warum nimmst du nicht einfach println? Damit spart man sich sowohl eine Zeile als auch ein Methoden Aufruf

0
MagicalGrill  22.08.2020, 04:44
@SkySurver

Weil println einen Zeilenumbruch macht. Ich persönlich würde die neue Zeile auch bevorzugen, aber ich wollte die Anforderungen des Fragestellers erfüllen (naja fast, ich hab am Ende ein Leerzeichen zu viel):

"2 4 6 8 10 .... 20"
0
MagicalGrill  22.08.2020, 04:52
@MagicalGrill

Wenn man sich den Methodenaufruf sparen möchte, könnte man auch etwas in dieser Richtung machen:

System.out.print(faktor * zahl + " ");

Aber ehrlich gesagt steck ich nicht genug in Java drin um zu wissen, ob das einfach so geht oder ob man das (faktor * zahl) vor der Konkatenation explizit typecasten muss.

0

Normalerweise würde man es so machen

for(int i=1;i<11;i++)System.out.print(i*2);
for(int i=1;i<11;i++)System.out.print(i*7);

Wenn Du es mit Selbstaddition (aber kein z+=z;) und While machen willst, dann etwas (unnötig) komplizierter

int z=0;
While(z<21){ // oder <71
     z+=2; // oder +=7
     System.out.print(z);}
Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich

xJumax 
Beitragsersteller
 21.08.2020, 10:42

Vielen Dank bereits für die Antwort. Gemäss Aufgabenstellung muss ich die Aufgabe allerdings mittels while Schleife erledigen, die "for" kenne ich noch gar nicht.... ist dies ebenfalls irgendwie möglich? Oder funktioniert dies genau gleich?

0
nobytree2  21.08.2020, 11:14
@xJumax

for ist einfach eine Schleife, die sich durchzählt

for(Initialisierung; Bedingung; Operation, in der Regel Erhöhung der Variable).

Es ginge auch

for(int i=2;i<21;i+=2){

besser

0
nobytree2  21.08.2020, 11:23
@xJumax

Bei mir war ein Fehler drin, es muss sein c<20

und man kann nach print(z); noch ergänzen

System.out.print(" ");

0

Hey,

ich würde es so lösen:

int counter = 0;
int multiplier = 7; //oder welche Reihe du willst
int n = 1;

while (counter < 10) {
  n = n * multiplier; // oder n *= multiplier
   System.out.print(n + „ “);
}

Mfg Jannick (L1nd)

Woher ich das weiß:Hobby

nobytree2  21.08.2020, 11:16

Ne, das passt nicht, sei n=1 und Multiplier=7

dann

n=1*7=7 = 7 hoch 1

n=7*7 = 7 hoch 2

etc.

Das ist also die Reihe x hoch i. Nicht x * i

0
xJumax 
Beitragsersteller
 21.08.2020, 11:00

Hmm irgendwie funktioniert es noch immer nicht so ganz, darf ich kurz die Aufgabenstellung nochmals genau wiedergeben?

"In dieser Aufgabe realisierst du ein Programm, das alle Reihen beherrscht! Der Benutzer kann eine beliebige Zahl eingeben, anschliessend gibt das Programm die ersten 10 Elemente der gewünschten Reihe aus. "

Beispiele (wie oben):

"2 4 6 8 10 .... 20"

"7 14 21 28... 70"

Ich habe es jetzt mal so versucht, als Ergebnis bekomme ich 33...

import java.util.Scanner; 

public class Main {

 public static void main(String[] args) {

  Scanner keyScan = new Scanner(System.in);

  System.out.println("Welche Reihe soll ich ausgeben?");

  int reihe = keyScan.nextInt();

  int counter = 0;

  int n = 0;

   

  while (counter<11) {

    counter++;

    n = counter * reihe;

  }

  System.out.println("Die Reihe geht so:"+n);

  // Reihe ausgeben

   keyScan.close();

 }

}

0
JanMarcel01  21.08.2020, 11:32
@xJumax

Hey, tut mir leid, habe mich da ein bisschen vertan. Hier ist die korrigierte Version. Der Multiplier stellt die Reihe da, welche ausgegeben werden soll, ist also die Zahl, welche du einlesen musst.

int counter = 0;
int multiplier = 7; //oder welche Reihe du willst
int n = 0;

while (counter < 10) {
    n = n + multiplier; // oder n += multiplier
    System.out.print(n + " ");
    counter++;
}

Mfg Jannick (L1nd)

0