Wed 30 Nov 2005 20:48:44
main()
{
int num;
scanf("%d",&num);
if(key>100)
printf("Upper");
else if(key>50)
printf("High");
else
printf("Low");
}
ถ้าผมต้องการใช้ switch case แทน if จะทำอย่างไรครับขอบคุณครับ
การทำงานของ switch ในภาษา C นั้นตัว case นั้นต้องเป็นค่า constant
หรือค่าคงที่ครับ ดังนั้นการเขียนจะไม่สามารถเขียนได้สั้นอย่างโค๊ดด้านบนครับ
ซึ่งถ้าใช้ switch case นั้นจะเป็นประมาณนี้ครับ
main(){
int num;
scanf("%d", &num);
switch(num){
case 110:
case 109:
case 108:
.... //ยาวไปเรื่อยๆครับ
case 101:
{
printf("Upper");
}
break;
case 100:
case 99:
case 98:
... //ยาวไปเรื่อยๆครับ
case 51:
{
printf("High");
}
break;
default:{
printf("Low");
}
break;
}
}
ประมาณนี้ล่ะครับ แต่จะมีปัญหาเรื่องตัว default เนื่องจาก default
นั้นจะ handle ในทุกกรณีที่ไม่ตรงกับค่าใดๆใน case ก่อนหนัาทั้งหมด
ดังนั้นจะมีปัญหาเรื่อง ถ้าค่าในส่วนของ Upper
นั้นไม่ครอบคลุมทั้งหมดก็จะมาเข้า default ทั้งหมดครับ
ซึ่งถ้า condition ของโปรแกรมเป็นดังตัวอย่างที่คุณให้มานั้นใช้ if else นั้นเหมาะสมที่สุดแล้วครับ
Thu 1 Dec 2005 06:42:11
Wed 29 Mar 2006 13:35:16
Tue 29 Jul 2008 09:46:32
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void main(void)
{
int choice,t,d;
float amout,num1,num2;
clrscr();
loop: printf("\n\n\n");
printf("\t ==================================\n");
printf("\t Wecome to Horwang nonresort\n");
printf("\t Please Select Room for rent\n");
printf("\t 1.Pudlom Room\n");
printf("\t 2.Aircondition Room\n");
printf("\t 3.Sweethart Room\n");
printf("\t 4.Suit Room\n");
printf("\t 0.Exit Program\n");
printf("\t ==================================\n");
scanf("\t\t%d",&choice);
{
room1=100,room2=200,room3=300,room4=400
}
switch(choice)
case 0:exit(0);
printf("\Enter Room Choie = ");
scanf("%f",&num1);
printf("\tEnter Day for rent = ");
scanf("%f",&num2);
switch(choice)
{
case 1:printf("\t\t%.2f+%.2f=%.2f\n",num1,num2,num1+num2);break;
case 2:printf("\t\t%.2f-%.2f=%.2f\n",num1,num2,num1-num2);break;
case 3:printf("\t\t%.2f*%.2f=%.2f\n",num1,num2,num1*num2);break;
case 4:printf("\t\t%.2f/%.2f=%.2f\n",num1,num2,num1/num2);break;
default:printf("\t\tPlase seclect only program 1-4\n");
}
goto loop;
getch();
}
มันให้เปลี่ยนหรือใส่วเลขรงไหนหรองับ ช่วยหน่อยนะ
Wed 30 Jul 2008 01:06:21

















