2016-09-23 13 views
0

Ich versuche, einen sehr grundlegenden Code zu schreiben, der dauert eine Zahl (getan durch manuelle Bearbeitung des Codes (dh kein Scanner erlaubt) und druckt dann alle seine Vielfachen bis zu ein gewisses Maximum (auch etwas, das manuell im Code eingegeben wird). Ich habe den Code, der für die Schleifen, Werte usw. funktioniert - wir müssen nur zwei Möglichkeiten zum Ausdrucken haben: Eine Art ist einfach, mit jeder Zahl auf einer Die andere Art ist viel schwieriger - jede Zeile hat 6 Zahlen, rechts gemeint, durch ein paar Leerzeichen getrennt .. Ich weiß, dass %(x/y/z/a/b/c)f wird gedruckt Strings/Ints/verdoppelt/etc .. Right mit Abstand basierend auf der x/y/z/a/b/c, aber ich Ich weiß nicht, wie man nach 6 Nummern automatisch eine neue Zeile einleitetAusgabe/Drucken von 6 Zahlen pro Zeile aus einer Schleife

import java.util.*; 
public class IncrementMax 
{ 
    public static void main(String[] args) 
    { 
     Scanner sc = new Scanner(System.in); 

     int maxvalue = 200; // these top 2 values have to be adjusted to suit the program to your needs 
     int incvalue = 5; 
     int increment = incvalue; 
     int max = 200; 

     System.out.println("I will print the multiples of " + increment + ", up to " + max + ". Do you want each number on a different line (y/n)?"); 
     String yesno = sc.next(); 

     if (yesno.equalsIgnoreCase("y")) 
     { 
      for(increment=incvalue; increment<(max+incvalue); increment=increment+incvalue) 
       System.out.println(increment); 
     } 
     else if (yesno.equalsIgnoreCase("n")) 
     { 
      for (increment=incvalue; increment<(max+incvalue); increment=increment+incvalue) 
       System.out.print(increment + ". "); 
     } 
     else 
      System.out.print(""); 
    } 
} 

Hier ist der Code, den ich bisher habe.

+0

Sie benötigen ein, wenn die Bedingung in der for-Schleife, die jedes Mal, wenn Sie gedruckt haben aus 6 Zeilen eine neue Zeile gedruckt wird. Tipp: Modulo-Operator –

+0

@MichaelMarkidis zu denken, dass ich genau das genau tippte. –

Antwort

0

Dies ist eine relativ einfache Verwendung des % Betreiber:

for (increment = incvalue; increment < max + incvalue; increment += incvalue) { 
    System.out.print(increment); 
    if (increment % (incvalue * 6) == 0) 
     System.out.println(); 
} 
+0

Danke! Das hat es gelöst. Ich habe jedoch Probleme, dies nachzuverfolgen, um zu sehen, wie es funktioniert (so kann ich es bei zukünftigen Code anpassen). Ich verstehe, dass das, was Sie testen, ist, wenn das int-Inkrement durch 6 teilbar ist (ich nehme an, dass etwas nur alle 6 Zeilen passiert), aber was ich nicht sehe, ist, wie Sie das Inkrement durch 6 teilbar machen Ich habe es jetzt mit anderen Nummern versucht und es funktioniert immer noch). – Ronan

+0

Es funktioniert, weil 'inkrement 'auf' incvalue 'initialisiert wird. Um eine beliebige Zahl 'n' zu verwenden, verwenden Sie' increment% (incvalue * n) '. –

Verwandte Themen