2016-07-17 4 views
-3

Ich habe versucht, mit einigen sehr großen Zahlen zu arbeiten. Ich habe Probleme mit dem langen Variablentyp in einer for-Schleife.Verwenden der langen Variablen geben Sie für for Schleifen

so sagen wir, ich 600000000000

verwenden möchten

Ich habe versucht, für Schleife ein einfach zu machen, dass iteriert durch 600.000.000.000 Zeiten. Das ist mein Versuch (java):

long n = 2342345234L; 
    for (int i = 1; i==n; i++) 
    { 
     System.out.println(i); 
    } 

Ich führe den Code, und es gibt nichts aus. Ich habe versucht, die int i = 1-long i = 1 und long i = 1L

Ich habe mit dem langen Variablentyp keine Erfahrung zu ändern, so würde ich eine Erklärung schätzen, was ich in meinem Code und/oder eine einfache Erklärung der Unterschiede ändern muß zwischen int und lange

ich habe für doppelte Beiträge überprüft, aber sie scheinen alle mehr um Menschen zentriert werden nicht L nach deren Zahlen nicht meine Frage stellen, wo die Schleife sofort zu beenden scheint.

Danke an alle Antworten. Es lohnt sich für jeden zu lesen, dass die Lösung für mein Problem für die lange variable Art in keiner Weise relevant war. meine falsche Umsetzung der einfach für Schleife

+0

für solche großen Zahlen verwenden 'while' mit langen Typ Vars – Sanjeev

+4

' i == n' ist immer 'false' in Ihrem Fall. Versuch es noch einmal. – Idos

+0

Haben Sie ein Problem oder was? Was ist deine Frage? Wenn Sie nach dem Unterschied zwischen int und long fragen, ist es so lang, dass es größere Zahlen als int enthalten kann (und daher etwas teurer ist). – Gendarme

Antwort

3

Das hat nichts mit long oder int zu tun hat, ist es aufgrund der Tatsache, dass Sie Schleife während i == n, die auf der ersten Iteration falsch ist, weil 1 nicht gleich 2342345234 ist.

Sie können stattdessen Schleife während i < n:

long n = 2342345234L; 
for (long i = 1; i < n; i++) 
{ 
    System.out.println(i); 
} 
+1

Sie sollten erwähnen, dass Sie auch diesen Typ von "i" geändert haben. – Tom

+0

Ah danke.Ich habe gerade begonnen, Java so dumm zu verwenden, dass ich dachte, dass der Code lief ** bis ** die Bedingung erfüllt wurde, anstatt ** während –

-1

Änderung i==n-i < n. Sie müssen zuerst lernen, wie die Schleife funktioniert.

long n = 2342345234L; 
for (long i = 1; i < n; i++) { 
    System.out.println(i); 
} 
+2

(Sie überwachte die ** int ** i, daher jemand downvoted.) –

+0

Danke für das Aufzeigen. – Pranalee

Verwandte Themen