30/09/2018, 21:33
Hàm swap hai số trong Java
Mình mới học Java. Mọi người cho mình tư vấn hàm swap 2 số trong java. Không giống trong c hay c++ có con trỏ vậy ở đây swap như thế nào?
Bài liên quan
Mình mới học Java. Mọi người cho mình tư vấn hàm swap 2 số trong java. Không giống trong c hay c++ có con trỏ vậy ở đây swap như thế nào?
Trong Java thì không thể viết hàm swap như C++ vì không có “pass by reference”.
Nhưng nếu bạn vẫn thích có hàm swap thì có thể viết như thế này
viết kiểu trên rất là phiêu lưu, lỡ y=x được xét trước y thì sao? Khi truyền tham số vào 1 hàm thì đâu nhất thiết phải truyền tham số từ trái sang phải.
a,b,c được truyền “cùng lúc”, nghĩa là thứ tự ko quan trọng, nghĩa là xét b rồi a rồi c cũng được, a rồi c rồi b cũng được, ko nhất thiết phải là a, b, c.
ừ mình nghĩ là ko nên dùng như vậy trong software thực tế.
Nhưng trong java thì chắc chắn là từ trái sang phải JLS 15.7.4
mình mới gu gồ thêm, đáng ngạc nhiên là rất nhiều ngôn ngữ như Java, C#, Python, PHP, Javascript đều bảo đảm là xét tham số truyền vào từ trái sang phải. Chỉ có C và C++ là ko. Ko biết còn ngôn ngữ nào ko đảm bảo trái phải nữa ko
Vậy các bạn cho mình 1 code Java đầy đủ của Swap được không?
Không swap được: Muốn thì tạo object riêng với property là kiểu số, rồi dùng object này đế pass by value.
trong gia java không có kiểu con trỏ hay kiểu tham chiếu nên muốn truyền tham chiếu thì chỉ có cách là dùng các kiểu dữ liệu tham chiếu để làm đối số
vd:
static void swap ( object A ){
}
static void main(){
object B = new object();
swap(B);
}