swith文について
こんにちは。
switch文を用いて分岐を行っています。
以下のプログラムは、whileの無限ループ内にswitch文の分岐を行っています。while内にrecvfrom関数(ソケット通信用関数)を用いています。recv_Buf配列内をヌル文字まで走査し、文字列の長さによって分岐をしています。
while内のrecvfromによって、他端末から文字列を逐次受信しているのですが、この場合、switch文ではなくif文による分岐を行うべきなのでしょうか?
また、breakを行うことで、whileの無限ループまで抜けることになるのでしょうか?
switchの場合、breakを用いないと、実行したくないところまで実行してしまう可能性があるので、breakは必要だと思い以下のプログラムにしました。
よろしくお願いいたします。
[プログラム]
while(1){
recvfrom(s2, recv_Buf, (int)sizeof(recv_Buf) - 1, 0, (SOCKADDR *)&from, &fromlen);
while(recv_Buf[len]!='\0')
len++;
switch(len){
case 3:
if(memcmp(recv_Buf,"END",3) == 0){
//処理
}
break;
case 5:
if(memcmp(recv_Buf,"START",5) == 0){
//処理
}
break;
case 12:
case 13:
case 14:
case 15:
if(memcmp(recv_Buf,"SEND_PACKET",11) == 0){
//処理
}
break;
}
}