2012-01-24 35 views
8

Làm cách nào tôi có thể đặt giá trị giới hạn trên và dưới cho biến trong câu lệnh if trong ngôn ngữ lập trình lua? Tôi cần một cái gì đó giống như mã giả dưới đây.Lua - nếu câu lệnh có hai điều kiện trên cùng một biến?

if ("100000" >= my_variable <= "80000") then 
    do stuff... 
end 

Tôi đã thử các định dạng khác nhưng ứng dụng của tôi vẫn gặp sự cố.

Cập nhật:

Để bất cứ ai có cùng một loại nghi ngờ về cú pháp lua của, tôi muốn khuyên bạn nên kiểm tra các tài liệu hướng dẫn here và giữ nó tiện dụng. Nó sẽ hữu ích trong khi học.

+0

Đối với các sự cố gặp sự cố, tôi sẽ giả sử nó chỉ đóng ngay lập tức? Để khắc phục điều này, bạn muốn mở trình thông dịch Lua và nhập 'dofile (" your_file.lua ")'. Điều này sẽ chạy nó trong chế độ tương tác, và ngăn nó đóng lại sau khi lỗi được hiển thị. (Bạn cũng có thể thêm "tạm dừng" vào cuối kịch bản xây dựng của bạn) – Deco

Trả lời

18

Bạn nên chuyển đổi chuỗi của mình thành một số, nếu bạn biết chắc chắn rằng đó phải là một số và nếu không có lý do nào cho chuỗi đó là một chuỗi.

Dưới đây là làm thế nào để làm một so sánh cho một phạm vi:

myVariable = tonumber(myVariable) 

if (100000 >= myVariable and myVariable >= 80000) then 
    display.remove(myImage) 
end 

Thông báo các and. Hầu hết các ngôn ngữ lập trình không tự động mở rộng biểu mẫu x < y < z thành x < y AND y < z, do đó bạn phải sử dụng logic and một cách rõ ràng. Điều này là do một bên được đánh giá trước mặt kia, do đó, theo thứ tự từ trái sang phải, kết quả sẽ xuất phát từ số x < y < z thành true < z, đó là lỗi, trong khi theo phương pháp rõ ràng, nó được chuyển từ x < y AND y < z đến true AND y < z đến true AND true, đến true .

+0

Tôi xin lỗi, tôi quên đề cập đến biến myvalue là văn bản, vì vậy để có được số chính xác được lưu trữ trên văn bản, tôi phải sử dụng dấu ngoặc kép! GIÁ TRỊ. – Mateus

+1

@MateusNunes: Có lẽ bạn nên chuyển đổi văn bản của mình (được gọi là "chuỗi") thành một số. Xem chỉnh sửa của tôi. – voithos

+0

Cảm ơn 'và' đã làm việc cho tôi! – Mateus

Các vấn đề liên quan