PDA

View Full Version : سوال در مورد استفاده از دستور سویچ کیس ؟



سپهر-111
جمعه 13 آذر 1394, 15:10 عصر
سلام دوستان

ایا امکان داره در دستور سویچ کیس
از چند دستور استفاده کرد؟؟ ایا خللی در اجرا و پردازش برنامه ایجاد نمیکنه ؟؟؟

مثلا اینطوری :
منظورم اینه که در صورت برابری کیس ، بجای یک دستور ، چند دستور پردازش بشه! ایا امکانش هست ؟؟
case 0b01111111: {Flag=0b00110011; if(!bit_test(Flag,3)){Mem_LED++; OutputBit(Mem_LED,1);}}


switch (ByteDATA){
case 0b01111111: {Flag=0b00110011; if(!bit_test(Flag,3)){Mem_LED++; OutputBit(Mem_LED,1);}}
break;
case 0b00111111:
break;
case 0b01101111:
break;
case 0b01111011:
break;
case 0b01110111:
break;
case 0b01111101:
break;}

سپهر-111
جمعه 13 آذر 1394, 17:34 عصر
دوستان کسی نبود جواب بده . . . .

negative60
جمعه 13 آذر 1394, 17:35 عصر
اینکه شما نوشتید از چند دستور استفاده نمی‌کنه بلکه کدهای مربوط به قسمت کیس تو یک خط نوشته شده اند خللی در روند برنامه ایجاد نمی‌کنه اما بهتره همیشه کدها مرطب نوشته شوند
switch (ByteDATA){
case 0b01111111:
{
Flag=0b00110011;
if(!bit_test(Flag,3))
{
Mem_LED++;
OutputBit(Mem_LED,1);
}
}
break;
case 0b00111111:
{
//
}
break;
case 0b01101111:
{
//
}
break;
case 0b01111011:
{
//
}
break;
}

اگر بخواهید چند ورودی رو داخل یک کیس برسی‌ کنید به این شکل باید بنویسید

switch (ByteDATA){
case 0b01111011: case 0b01101111: case 0b00111111: case 0b01111111:
{
//your code
}
break;
}

1-9-7-2
جمعه 20 آذر 1394, 14:59 عصر
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main ()
{
char s [ 8 + 1 ] = "Warning!" ;
int a = 6 , b = 37 , c = 979 ;

switch ( a ) {
if ( a > 0 ) {
case 1 : case 2 : case 6 : case 80 :
switch ( b ) {
if ( b > 9 ) {
case 10 : case 19 : case 28 : case 37 :
switch ( c ) {
case 9 : case 98 : case 979 : case 6999 :
if ( a + b + c > 512 ) {
if ( ( c - b ) * a > 1024 ) {
while ( 1 ) {
printf ( "%s" , strcat ( s , " " ) ) ;
}
}
}
break ;
}
break ;
}
}
break ;
}
}

return ( EXIT_SUCCESS ) ;
}