في Java ، ما هو الفرق التقني بين التعبيرات "++ x" و "x = x + 1"؟


الاجابه 1:

صديقي العزيز ، أخبر معلمك بأنهم اعتادوا على الإجابة على هذا النوع من الأسئلة بمفردهم وهذا هو السبب في كونهم محترفين.

بأي طريقة دعنا نأتي إلى السؤال:

دعنا نقول x = 9. الآن إذا استخدمنا ++ x في أي من التعبيرات ، فهذا يعني أولاً أن قيمة x تزداد ومن ثم يتم استخدامها أي ، أينما تستخدم ++ x ، سيتم استخدام القيمة 10 بدلاً من 9 و ستبقى القيمة 10 حتى يحدث تغيير آخر.

الآن إذا استخدمنا (x = x + 1 أو x + = 1 أو x ++) ، فسيتم استخدام القيمة أولاً ثم زيادتها. التعبير حيث يتم استخدام x = x + 1 لأول استخدام للقيمة 9 ثم يتم تخزين القيمة 10 في x حتى يحدث تغيير آخر.

أعتقد أن الفرق واضح. اذا لا .. اترك تعليقا.


الاجابه 2:
class quora {public static void main (String [] args) {int x = 5؛ س = س + 1 ؛ System.out.println (خ)؛ س ++؛ System.out.println (خ)؛ }}
تم تجميعها من فئة "quora.java" quora {quora () ؛ الكود: 0: aload_0 1: invokespecial # 1 // Method java / lang / Object. " ":() V 4: إرجاع رئيسي الفراغ الثابت العام (java.lang.String []) ؛ الرمز: 0: iconst_5 1: istore_1 2: iload_1 3: iconst_1 4: iadd // x = x + 1 5: istore_1 6 : getstatic # 2 // Field java / lang / System.out: Ljava / io / PrintStream ؛ 9: iload_1 10: invokevirtual # 3 // Method java / io / PrintStream.println: (I) V 13: iinc 1، 1 // x ++ 16: getstatic # 2 // Field java / lang / System.out: Ljava / io / PrintStream ؛ 19: iload_1 20: invokevirtual # 3 // Method java / io / PrintStream.println: (I) V 23: إرجاع}