switch

シンタックス確認して、改めて思ったけど、switchの定義は以下。

switch(式)文

この文には何の制限もない。caseもdefaultもbreakも不要。だからかなり奇っ怪な文が書ける。

C言語覚えたての頃、switch文にかなり違和感があったけど、ある意味当然だったのかも。

以下none senseだが、syntax 適合コード

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
	int i;

	if (argv[1] != NULL) {
		i = atoi(argv[1]);
	} else {
		i = 0;
	}
	
	switch (i) {
		do {
		case 10:
			if (i < 0) {
				printf("lower than 0\n");
			} else {
				printf("biger than or equal 0\n");
			}
		} while(i--);
	}

	return 0;
}