Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 2 của 2
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    thắc mắc về độ ưu tiên các phép toán trong java (++ và +)

    Mã:
    public class test1 
    {
    	public static void main(String []args)
    	{
    		int c=5;
    		
    		c+=c + c++ ;
    		System.out.println("c+=c + c++ Result:="+c); // ket qua = 15
    		c=5;
    		c+=c++ + c ;
    		System.out.println("c+=c++ + c Result:="+c); // ket qua =16
    	}
    
    
    }
    Mình có 1 đoạn code nhỏ này , kết quả cho ra ở 2 phép toán trên hoàn toàn khác nhau, cho nên mình ko hiểu rõ về độ ưu tiên của ++ trong java , mong mọi ng xem giúp

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Theo java:

    dòng đầu tiên:
    c += c + c++
    tương đương:
    c = c + (c + c++) = 5 + (5 + 5) = 15

    dòng thứ 2:
    c += c++ + c
    tương đương:
    c = c + (c++ + c) = 5 + 6 + 5 = 16

    NHƯNG objectC, C++ và C# thì lí giải khác:

    dòng đầu tiên:
    c += c + c++
    tương đương:
    c = c + (c + c++) = 5 + (5 + 5++) = 5 + 5 + 6 = 16

    dòng thứ 2:
    c += c++ + c
    tương đương
    c = c + (c++ + c) = 5 + (5++ + 5++) = 5 + 6 + 6 = 17

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •