求大神帮我解释一下我代码中注释的那部分。怎么看都看不懂,感激不尽!

#include <stdio.h>
main()
{
	int x,y,flag;
	printf("please input a num x:\n ");
	scanf("%d",&x);
	flag=x<0?-1:(x<10?1:2);
//x是否小于0,是则flag=-1;否则flag=x<10?1:2,又进行判 断 x<10成立与否,成立则flag=1否则flag=2
	switch(flag)
	{
	case -1:y=x;break;//swith分支语句。每一个case都对应一个flag的判断。
	case 1:y=2*x-1;break;
	case 2:3*x-1;
	}
	printf("y=%d\n",y);
}