For-Anweisung - Java - Bestimmtes Intervall?

6 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Pfuh... von den bisher 5 gegebenen Antworten sind nur 2 richtig... ūüėē

Du solltest wissen, dass in einer Iterationsschleife die Iterationsanweisung viel freier definiert werden kann. Du bist nicht daran gebunden, die Iterationsvariable stets um genau 1 zu erhöhen. Daher kannst du auch schreiben:

for (float t = 0; t < duration; t += 0.5f) { /* ... */ }

Wobei duration einfach mal die maximale Dauer beschreibt, die abgebildet werden soll und der double-Datentyp natürlich stattdessen ebenso einsetzbar wäre.

Noch als Nachtrag möchte ich mit ein paar Beispielen verdeutlichen, dass Iterationsschleifen in ihren Kopfargumenten mehr Implementationsraum bieten, als nur die typische Inkrementierung einer Variablen:

// print out with each iteration
for (int i = 0; i < 2; System.out.println(++i));

// multiple local variables
for (int i = 0, j = 1; i < 5; i += j) System.out.println("x" + i);

// infinity loop
for (;true;);

// with bool
for (boolean b = true; b; b = false) System.out.println(b);

// infinity loop
for (;;);

Gesagt sagt hier noch, dass diese Beispielimplementationen natürlich eher unschön sind und daher in der Praxis so nicht eingesetzt werden sollten.

Vielen Dank für die ausführliche Antwort! Jetzt hab ichs tatsächlich mal verstanden.

0

Schreibt man int t++, dann wird t ja immer ganzahlig um 1 erhöht.

Dann verwende keinen int, sondern ein double und erhöhe um einen kleineren Wert.

Nimmste ein float machste i += 0.5

Wie kann ich einen Zufallsgenerator mit Java erstellen, der 4 unterschiedliche Zahlen anzeigt, die in dem Intervall 0-6 liegen?

Mein Ansatz sieht so aus:

...

public void getZufallsZahlen() {

    int zufallsZahlen = new zufallsZahlen(min, max, zahlenFolge);
    
    zufallsZahlen = (int)(Math.random()*(max+1-min)+min); 
    
    liste.add(zufallsZahlen);
    
    for(zufallsZahlen = min; zufallsZahlen <= max; zufallsZahlen =zahlenFolge){
        System.console().print(zufallsZahlen); 
                    int[] resultatVonSplit = zufallsZahlen.split(" "); 
        }

Dies ist nur ein Ansatz, weil ich nicht genau weiß, wie ich es anstellen soll. Außerdem ist das nur ein Teil eines Programms. Ich bin ein extremer Anfänger, sorry für blöde Fehler oder so.

...zur Frage

Wieso lässt sich in Lua ein Objekt einer Klasse nicht anlegen?

Hallo,
ich habe kaum Erfahrung mit der Programmiersprache Lua und komme aus dem .Net bzw. Java Umfeld, jedoch sollten solche die Grundlagen einigermaßen einem Informatiker auch so klar sein.

Zum Kern der Frage:

Ich möchte mir in Lua folgendes Objekt erzeugen

romania = Graph:new( {'Or', 'Ne', 'Ze', 'Ia', 'Ar', 'Si', 'Fa',
              'Va', 'Ri', 'Ti', 'Lu', 'Pi', 'Ur', 'Hi',
              'Me', 'Bu', 'Dr', 'Ef', 'Cr', 'Gi'},
             {
            {'Or', 'Ze', 71}, {'Or', 'Si', 151},
            {'Ne', 'Ia', 87}, {'Ze', 'Ar', 75},
            {'Ia', 'Va', 92}, {'Ar', 'Si', 140},
            {'Ar', 'Ti', 118}, {'Si', 'Fa', 99},
            {'Si', 'Ri', 80}, {'Fa', 'Bu', 211},
            {'Va', 'Ur', 142}, {'Ri', 'Pi', 97},
            {'Ri', 'Cr', 146}, {'Ti', 'Lu', 111},
            {'Lu', 'Me', 70}, {'Me', 'Dr', 75},
            {'Dr', 'Cr', 120}, {'Cr', 'Pi', 138},
            {'Pi', 'Bu', 101}, {'Bu', 'Gi', 90},
            {'Bu', 'Ur', 85}, {'Ur', 'Hi', 98},
            {'Hi', 'Ef', 86}
             },
             false ) 

Und dies sei der dazugehörige Konstruktor:

function Graph:new(Vertices, Edges, Directed)
   local matrix = {}
 
   for i, e in pairs(Edges) do
      matrix[self:SetHash(e[1], e[2])] = e[3]
      if not Directed then matrix[self:SetHash(e[2], e[1])] = e[3] end
   end
   
   local vertex_lookup = {}
   for i, v in pairs(Vertices) do
      vertex_lookup[v] = i
   end

   local num_v = #Vertices
   
   return setmetatable({ vertices = Vertices, vertex_lookup = vertex_lookup,
             adj = matrix, num_v = num_v  },
               Graph_mt)
end

Nun ist es so, dass mit dem "new" mein "romania" Objekt trotzdem leer bleibt/ weiterhin auf null bzw. nil verweißt. Ich verstehe nicht, wieso keine Objekte erzeugt werden, vielleicht überssehe ich auch einfach etwas?

...zur Frage

Waß gibt der folgende Code aus?

Wie schon erwähnt der Code soll das Maximum des übergebenen Parameters zurückliefern.

public int max(int[] x) {

Hoffe jemand kann helfen Vg

...zur Frage

Java Zufallszahlen Programm (for Schleife)?

Ich brauche Hilfe bei einem Programm. In diesem Programm geht es darum, dass der Computer sich eine Zahl zwischen 1 und 100 ausdenkt, welche der Nutzer dann erraten soll. Je nachdem ob die Zahl größer oder kleiner ist wird es dann ausgegeben. Man hat 10 Versuche, doch wenn ich die Zahl in z.B. 5 Versuchen erraten habe fragt mich das Programm trotzdem noch weiter nach der Zahl, so lang bis die 10 Versuche verbraucht sind. Und wie kann ich es schaffen, dass wenn die Zahl nicht erraten wird, dass das Programm sie dann am Ende ausgibt ? das ist das Programm bis jetzt:

//----------------------------------------------Variablendeklaration------------------------------------------ String Eingabe1; int Zahl; int Eingabe;

    Random rand=new Random();
    Zahl= rand.nextInt(100);
    

//-------------------------------------------------Schleife--------------------------------------------------------

    for (int Zähler=0; Zähler<10; Zähler=Zähler+1)
    {
        Eingabe1=JOptionPane.showInputDialog(null, "Geben sie ihre ausgedachte Zahl ein");
        
        Eingabe=Integer.parseInt(Eingabe1);
        

//-------------------------------------------------if-Anweisung-------------------------------------------------- if (Eingabe<Zahl) { JOptionPane.showMessageDialog(null, "Die Zahl ist größer.");}

        else if (Eingabe>Zahl)
        {JOptionPane.showMessageDialog(null, "Die Zahl ist kleiner.");}
        
        else 
        {JOptionPane.showMessageDialog(null,  "Die Zahl ist richtig.");}
        
...zur Frage

Spielt es in C++ eine Rolle, wie man die Laufvariable einer Vorschleife erhöht?

also normalerweise gilt ja in c++:

cout<< i++; // i wird ausgegeben und nach dem Semikolon um eins erhöht

und

cout>>++i; // i wird zuerst erhöht und dann ausgegeben

nur wie ist das denn in einer For-Schleife? Gibt es da auch einen Unterschied?

z.B. for( int i=0;i<=100;i++) {cout<<i<<endl;}

...zur Frage

Wertetabelle f√ľr eine Funktion f(x) in Python erstellen?

Ich habe in Python einen kleinen Taschenrechner programmiert (ohne "Benutzeroberfläche", da ich noch nicht weiß wie ich so eine Grafik programmiere), der, bis jetzt, eigentlich ziemlich simpel ist.

Der Taschenrechner hat eine "Konstantenliste" un eine Formelsammlung, die er ausgeben kann und, ich glaube, circa 10 neue Rechenoperatoren, wie den Kotangens. Natürlich kann er auch eine eingegebene Rechnung lösen.

Das Problem ist, dass ich noch die Funktion einbauen will, dass man bei der Eingabe, zum Beispiel "Funktion" eingibt und man dann eine Funktion (wie 3(x**2)+5x+3) eingeben kann. Danach soll man noch den Bereich, den man sich anschauen will (wie (-10, 10)) eingeben und die Schritte (wie 0.5).

Wenn man das gemacht hat, soll das Programm einem eine Wertetabelle für die Funktion im genannten Intervall, in dem die x-Werte um den eingegebenen Schritt erhöht werden, ausgeben.

Jedoch weiß ich nicht, wie ich das machen soll und ich habe auch nichts dazu im Internet gefunden.

...zur Frage

Was möchtest Du wissen?