Thắc mắc về hàm và gọi hàm
mình đang ôn thi cuối học phần và trong tài liệu ôn thi mượn được từ thằng bạn thì có một câu như này nhờ mọi người cùng nhau thảo luận giúp mình nhé!
Lúc đầu mình nghĩ là sẽ in ra 2 dòng “isDigit() called”
Nhưng khi viết chương trình chạy thì chỉ hiện 1 dòng thôi.
Khi thay and trong if ở main thành or thì lại in ra 2 dòng.
Mình đã thử với rất nhiều trường hợp khác nhau nhưng vẫn không thể hiểu nổi!
Mong nhận đc sự góp ý tận tình từ mọi người!
Thân.
Vì
isDigit('B')
có kết quả làFALSE
nên cả biểu thức AND chắc chắn trả vềFALSE
Trường hợp này các biểu thức phía sau sẽ được bỏ qua để tối ưu chi phí.
Tương tự với toán tử
OR
, nếu có 1 toán hạng làTRUE
thì cả biểu thức chắc chắn làTRUE
, các toán hạng phía sau sẽ được lược bỏ.Trong C,C++, java thì toán tử && nếu false thì bỏ qua cái sau luôn. Nên chỉ có 1 cái isDigit thôi
OK! giờ thì mình đã hiểu! Cảm ơn mọi người!
FPT University ^^.
Có lấy key không em ơi
Thi xong rồi anh @Is2IT
@lanhhuyet510 Eo chưa kịp vào thể hiện tài năng thì @lanhhuyet510 đã hiểu rồi
@dangh Thanks bro
@ltd
isDigit('1')
thì gọi là gì cho đúng nhỉ? toán hạng, toán tử, biểu thức?@dangh
isDigit('1')
là hàmPrototype của nó như thế này
@ltd Ý là trong biểu thức
isDigit('B') && isDigit('1')
kìaNếu vậy thì coi nó là toán hạng. Vì nó tham gia vào phép so sánh
&&
bài này cũng hay vừa bíêt cách gọi hàm vừa phân biệt & và && mà có ai thử code trên java giống mình k ta tùm lum lỗi lun