ข้อสังเกต
1. ข้อมูลที่โจทย์กำหนดเป็นช่วง เช่น 80-100
2. เงื่อนไขของ case ค่าของตัวแปรในนิพจน์เป็นจำนวนเต็ม( Integer Value)
การแก้ปัญหา
1.จะต้องหาตัวแทนของกลุ่มเลขที่โจทย์กำหนดเป็นค่าเพียงค่าเดียวในแต่ละกลุ่ม ซึ่งในที่นี้สามารถแบ่งช่วงเลขทั้งหมดเป็น 10 ช่วงได้ โดยใช้ 10 เป็นตัวหาร
2.ใช้คุณสมบัติของการหาร (/) เลขจำนวนเต็ม (int) จะได้เลขจำนวนเต็มที่ตัดเศษทิ้งของภาษา Java เช่น 79/10 จะได้ผลลัพธ์เป็น 7 ซึ่งจะคลุมตัวเลขตั้งแต่ 70-79
3. ด้วยวิธีการหาร จะทำให้ได้เลขจากการหารทั้งหมด 10 ตัว คือ 1, 2, 3, …, 10
แก้ปัญหาติดลบอย่างไรครับ
ตอบลบjava.util.Scanner kb = new java.util.Scanner(System.in);
ตอบลบint g = kb.nextInt();
String a ="";
switch((g+"").indexOf("-")){
case -1:
switch(g/10){
case 0:
case 1:
case 2:
case 3:
case 4:a="F";break;
case 5:a="D";break;
case 6:a="C";break;
case 7:a="B";break;
case 8:
case 9:a="A";break;
case 10:
switch(g%10){
case 0: a="A";break;
default:a="it not 0-100";
}
break;
default:a="it not 0-100";
} break;
default:a="it not 0-100";
}
System.out.print(a);