2016-06-13 5 views
-8

Sorry, ich bin fest auf der Umwandlung dieser zu tun, während Schleife kann jemand helfen mir bitte.java, wie für for Schleife zu tun, während Schleife zu tun

int sum = 0; 
int num; 

System.out.print("Enter number: "); 
num = sc.nextInt(); 
// Store the user input into variable num        

// Complete the for loop to start from 1 
// and end at num 

for (int i = 1 ; i <=num ; i++) 
    sum += i; 

System.out.println("The sum is " + sum); 

und das ist mein do while-Schleife

int sum = 0; 
int num; 

int i = 1; 

do { 
    sum += i; 
    System.out.print("Enter number: "); 
    num = sc.nextInt(); 
    i++; 
} while (i <= num); 

System.out.println("The sum is " + sum); 
+0

Ihre while-Schleife führt 'num + 1' mal aus. – Maroun

+0

Sie können ein anderes Verhalten erwarten, wenn Ihre Eingabe * außerhalb * der for-Schleife und * innerhalb * der while-Schleife ist. – Filburt

+1

'for' Schleife prüft die Bedingung zuerst, um zu sehen, ob sie iterieren kann,' do-while' zuerst iteriert dann prüft sie die Bedingung, ob sie erneut durchlaufen soll. Wenn Sie genau das gleiche Verhalten haben möchten, müssen Sie die Bedingungsprüfung hinzufügen, bevor Sie 'do-while' eingeben, aber an dieser Stelle würde es bedeuten, dass Sie einfach while {}' loop verwenden sollten. – Pshemo

Antwort

3
int sum = 0; 
    int num; 
    int i = 0; 
    System.out.print("Enter number: "); 
    num = sc.nextInt(); 
    do{ 
    sum += i; 
    i++; 
    } 
    while (i <=num); 

    System.out.println("The sum is " + sum); 

initialisieren i, auf Null, da do-while ersten tut vor der Kontrolle, im Gegensatz dazu prüft zuerst, bevor Sie. Und Ihr Do-While wird genauso funktionieren wie Ihr for.Oder Ihr Do-While wird eine Summe von 1 haben, selbst wenn Ihr Num 0 ist. Im Gegensatz zu Ihrem für das wird Summe = 0 wenn Num ist 0.

+0

warum setzen Sie System.out.print ("Nummer eingeben:"); und num = sc.nextInt(); ouside of loop – stevenTan

+1

weil Sie diese Variable nur einmal benötigen, es sei denn, Sie addieren sie zur Summe – alan

+0

@stevenTan Hinweis: Sie haben es auch außerhalb von 'for' loop in Ihrem ursprünglichen Code. Warum das? – Pshemo

1

Im ersten Fall geben Sie num Wert außerhalb der for, der zweite Fall Sie tun es auf der Do/while. Also nehme ich an, du willst das tun:

0

Zuerst müssen Sie vielleicht die Grundlagen der Schleifen ein bisschen mehr studieren. Der Unterschied zwischen while-Schleife und do-while-Schleife ist der Ort, an dem die Bedingung geprüft wird. Do-while-Schleife prüft die Bedingung nach Ausführung des Codeblocks. Und die While-Schleife nicht. Es prüft vor der Ausführung.

int num = sc.nextInt(); 
int i = 1; 
int sum = 0; 
do{ 
    sum += i; 
     i++; 
}while(i <= num);  //check condition after the running do block 
System.out.println(sum); 

** Dies hängt von Ihrer Eingabe ab. Das heißt, wenn Ihre Eingabe Null ist, wird die Antwort falsch sein. Weil Ihr i = 1 und die Summe gleich 1 wird.