พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
C programming / ช่วยหน่อยครับการใช้ switch case
เด็กฝึกหัด
เด็กฝึกหัด
Wed 30 Nov 2005 20:48:44
#include<stdio.h>
main()
{
int num;
scanf("%d",&num);
if(key>100)
printf("Upper");
else if(key>50)
printf("High");
else
printf("Low");
}

ถ้าผมต้องการใช้ switch case แทน if จะทำอย่างไรครับขอบคุณครับ
Administrator
Wed 30 Nov 2005 21:58:29

การทำงานของ 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
ขอบคุณมากครับ
TripleA
TripleA
Wed 29 Mar 2006 13:35:16
ตัวแปร key มาจากไหนครับ พิจารณาจากโปรแกรม คุณเด็กฝึหัดรับค่าเก็บที่ num ก้ใช้ num เช็คซิครับ  โปรแกรมน่าจะแจ้ง ERROR นะครับ
viperpond
viperpond
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();
}

มันให้เปลี่ยนหรือใส่วเลขรงไหนหรองับ  ช่วยหน่อยนะ

webmaster
webmaster
Wed 30 Jul 2008 01:06:21
อ่านโค๊ดแล้วงงมากๆครับ คำถามก็งงๆ ใส่เลขอะไรและเปลี่ยนเลขอะไรหรือครับ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login