สมมติฟังก์ชันดังนี้ครับ..
public void call(String text){
if(text.equals("A"))
{
//do1
}
else if(text.equals("B"))
{
//do2
}
else{
//do3
}
}
ลักษณะปัญหาก็คือ ผมเรียกเมธอต call จากในอีกเมธอตหนึ่งซึ่งเป็นเมธอตที่ @Override มา โดยผมได้ส่งสตริงจากเมธอต @Override
เข้ามาใช้ในเมธอตนี้ ผ่านพารามิเตอร์ text และใช้ text ในการใช้เปรียบเทียบสตริงดังโค้ด ปรากฎว่า ไม่ว่าผมจะส่งสตริงเป็นคำใดมาก็ตาม แม้แต่ A และ B โปรแกรมก็ทำงานเฉพาะส่วน //d0 3 อย่างเดียว (หากมีเงื่อนไขเพิ่ม ก็ทำงานเฉพาะในเงื่อนไขสุดท้ายเท่านั้น)
อยากทราบว่าเมันเกิดอะไรขึ้นกับปัญหานี้ แล้วจะแก้อย่างไร ใครเชี่ยวชาญช่วยตอบทีครับ.._/\_
ปัญหาการใช้ if-else ที่ทำงานไม่ถูกต้อง
public void call(String text){
if(text.equals("A"))
{
//do1
}
else if(text.equals("B"))
{
//do2
}
else{
//do3
}
}
ลักษณะปัญหาก็คือ ผมเรียกเมธอต call จากในอีกเมธอตหนึ่งซึ่งเป็นเมธอตที่ @Override มา โดยผมได้ส่งสตริงจากเมธอต @Override
เข้ามาใช้ในเมธอตนี้ ผ่านพารามิเตอร์ text และใช้ text ในการใช้เปรียบเทียบสตริงดังโค้ด ปรากฎว่า ไม่ว่าผมจะส่งสตริงเป็นคำใดมาก็ตาม แม้แต่ A และ B โปรแกรมก็ทำงานเฉพาะส่วน //d0 3 อย่างเดียว (หากมีเงื่อนไขเพิ่ม ก็ทำงานเฉพาะในเงื่อนไขสุดท้ายเท่านั้น)
อยากทราบว่าเมันเกิดอะไรขึ้นกับปัญหานี้ แล้วจะแก้อย่างไร ใครเชี่ยวชาญช่วยตอบทีครับ.._/\_