Was ist besser in Java zu verwenden? x = 10 oder x 11?

7

Gibt es einen Unterschied, der die Programmeffizienz zwischen x <= 10 und x < 11 beeinflusst? Gibt es noch andere Unterschiede?

Danke

    
user2290659 17.04.2013, 12:39
quelle

8 Antworten

6

Siehe Ссылка  Zum Beispiel wird für x <= 10 der Befehl if_icmple verwendet und für den Befehl x < 11 wird der Befehl if_icmplt verwendet. Beide sollten dieselbe Effizienz haben.

    
Niraj Nawanit 17.04.2013, 12:44
quelle
3

Kein Unterschied für das Programm, ich denke, das ist persönlicher Geschmack.

    
Micha 17.04.2013 12:42
quelle
3

Es gibt keinen Unterschied für

%Vor%

Aber für das Doppelte gibt es einen großen Unterschied:

%Vor%     
kyticka 17.04.2013 12:45
quelle
2

Es sollte überhaupt keinen Unterschied geben. Die gleiche Anzahl an Überprüfungen wird durchgeführt.

    
Eugene 17.04.2013 12:42
quelle
2

Es hängt davon ab, was Sie tun. Zum Beispiel siehe unten.

Die Schleife, in der i <= 10 101 Zeit ausführt, während i < 11 111 mal ausführt.

%Vor%

Ausgabe:

%Vor%     
Achintya Jha 17.04.2013 12:46
quelle
1

Das hängt vom Typ von x ab. Im Fall einer Ganzzahl gibt es keinen Unterschied. Wenn es ein float oder ein double ist, gibt es einen deutlichen Unterschied zwischen den beiden.

    
Joeri Hendrickx 17.04.2013 12:46
quelle
1

Beide sind hinsichtlich der Effizienz identisch, Ihre persönliche Wahl .
Wenn Sie das Byte code der generierten Klasse überprüfen, haben beide die gleiche Komplexität strong> dh für beide Fälle wie die Schleife (angenommen, die Prüfung in einer for-Schleife vorhanden) wird dieselbe Anzahl von Zeiten ausgeführt, so dass sie dieselbe Komplexität haben, so dass keine Auswirkungen auf die Komplexität eines Programms hat .

    
Shreyos Adikari 17.04.2013 12:44
quelle
1

Ich habe ein bisschen getestet, hier ist der Code:

%Vor%

Die Ergebnisse nach 3 Läufen zeigen weniger als 1% Unterschied oder um es herum, das scheint eher abhängig von der aktuellen Belastung des Computers zu sein. Sie können es überprüfen.

& lt; 12680 ms
& lt; = 12673 ms

& lt; 12726 ms
& lt; = 12717 ms

& lt; 12624 ms
& lt; = 12774 ms

    
CsBalazsHungary 17.04.2013 13:11
quelle

Tags und Links