7progress control-选择(switch)

switch语句

格式:

switch (表达式)

{

  case 常量表达式1: 语句1;

  case 常量表达式2: 语句2;

  case 常量表达式3: 语句3;

  default: 常量表达式4: 语句4;

}

 

#include <stdio.h>
int main(void)
{
	int val;
	printf("请你输入楼层:\n");
	scanf("%d", &val);
	switch (val)
	{
		case 1:
			printf("1层开!\n");
			break;
		case 2:
			printf("2层开!\n");
			break;
		case 3:
			printf("3层开!\n");
			break;
		default:
			printf("没有盖到这一层!\n");
			break;
	}
	return 0;
}

 

  说明:(1)case是程序的入口,一旦找到程序的入口,case将失效。

      (2)break的作用是终止switch;

break和continue

break如果用于循环,则用来终止循环;

break如果用于switch,则用于终止switch;

break不能直接用于if,除非if属于循环内部的一个子句;

例题:

 

#include <stdio.h>
int main(void)
{
	int i;
	for (i=0; i<3; ++i)
	{
		if (3>2)
			break;//break虽然是if的内部语句,但break却终止的外部的for循环
		printf("嘿嘿!\n");
	}
	return 0;
}

 

  break只能终止距离它最近的循环

 

#include <stdio.h>
int main(void)
{
	int i, j;
	for (i=1; i<4; ++i)
	{
		for (j=1; j<4; ++j)
			break;//break只能终止距离它最近的循环
		printf("同志们好!\n");
	}
	return 0;
}

 

   在多层switch嵌套中,break只能终止距离它最近的switch

#include <stdio.h>
int main(void)
{
	int x=1, y=0, a=0, b=0;
	switch(x)//第一个switch
	{
		case 1:
			switch(y)//第二个switch
				{
					case 0:
						a++;
						break;//终止的是第二个switch
					case 1:
						b++;
						break;
				}
			b = 100;
			break;//终止的是第一个switch
		case 2:
			a++;
			b++;
			break;
	}
	printf("a=%d, b=%d\n", a, b);
	return 0;
}
/*
	在vc++6.0中的输出结果:a=1, b=100	
*/

continue  

用于跳过本次循环余下的语句,转去判断是否要执行下次循环

1)for语句的格式:

for (1, 2, 3)
{
  A;
  B;
  continue;//该语句执行后,执行语句3,C和D语句都会被跳过去,C和D语句不会被执行
  C;
  D;
}

流程:执行continue语句后,执行语句3,C和D语句都会被跳过去,C和D语句不会被执行

 

 

2)while语句的格式

 

while(表达式)
{
    A;
    B;
    continue;//该语句执行后,去执行表达式,C和D都会被跳过去,C和D语句不会被执行
    C;
    D;   
}

 

流程:执行continue语句后,执行表达式,C和D语句都会被跳过去,C和D语句不会被执行

 

  

 

posted @ 2024-08-05 22:32  java帝国  阅读(4)  评论(0)    收藏  举报