Rückgang der Schleife in Scala?

7

Erster Tag und erster Versuch, Scala zu benutzen - also schont mich! Ich versuche, etwas alten Java-Code neu zu schreiben, der einfach eine Funktion ist, die zwei Zahlen nimmt und die Zahlen von x bis y ausdruckt. Zum Beispiel habe ich die Inkrementierungsfunktion:

%Vor%

Aber ich habe Mühe, eine entsprechende Dekrement-Funktion zu schreiben, die von Anfang bis Ende abnimmt? Ich habe Scala nach unten oder absteigend nach Loop gelesen? , bin aber immer noch unsicher

Danke

    
rwb 02.04.2012, 13:00
quelle

7 Antworten

15
%Vor%     
dacwe 02.04.2012, 13:04
quelle
4
%Vor%

Wenn Sie by -1 vergessen, können Sie nach oben gehen und eine Funktion verwenden, um das Ergebnis zurückzusetzen:

%Vor%

Um die zweite Grenze auszuschließen, verwenden Sie until :

%Vor%

Alternativ können Sie einen Iterator für Ihren Zweck definieren. Einen Iterator zu erweitern ist einfach; Implementiere einfach 'hasNext: Boolean' und 'Next: [T]', wobei T der zu handhabende Typ ist - in unserem Fall Int oder vielleicht Long oder BigInt:

%Vor%     
user unknown 02.04.2012 13:04
quelle
1

highnum bis lownum mit -1 (mit anderen negativen oder positiven Schritten wechseln, um das Stepping zu ändern)

%Vor%

Ich denke, das ist ein Betrüger von Scala nach unten oder absteigend für die Schleife?

    
Roman A. Taycher 02.04.2012 13:14
quelle
1

Auf diese Weise können Sie Scala in Scala reduzieren.

%Vor%     
Nilesh Shinde 07.11.2017 10:27
quelle
0

Hier ist eine globale Inkrement / Dekrement-Lösung, die von Scala nach unten oder abnehmend für die Schleife inspiriert wurde? :

%Vor%     
Christopher Chiche 02.04.2012 13:07
quelle
0
%Vor%

Dies ist auch eine Methode. aber möglicherweise nicht das Beste

    
Dbase Plsql 17.01.2016 17:58
quelle
0
%Vor%

Methodenaufruf:

printInDecreasingOrder(10, 2)

Ergebnis:

Aktueller Wert (von 10 auf 2) ist 10

Aktueller Wert (von 10 auf 2) ist 9

Der aktuelle Wert (von 10 auf 2) ist 8

Aktueller Wert (von 10 auf 2) ist 7

Aktueller Wert (von 10 auf 2) ist 6

Aktueller Wert (von 10 auf 2) ist 5

Aktueller Wert (von 10 auf 2) ist 4

Aktueller Wert (von 10 auf 2) ist 3

Aktueller Wert (von 10 auf 2) ist 2

printInDecreasingOrder(1, 10)

Ergebnis:

erste Zahl ist kleiner als zweite

    
Azam Khan 24.10.2017 16:33
quelle

Tags und Links