Switch
语法:switch (expression) statement
具体写法是这样的:
switch(expression){
case constant_exptession :statement
case constant_exptession :statement
}
每个case的标签必须具有一个唯一的值。常量表达式(constant-exptession)是指在编译器渐进性的求值的表达式的,他不能使任何变量。
执行过程中先计算expression的值然后匹配到case中cosntant-exptession的值,这个之后的语句都会被执行。也就是说case仅仅是语句执行的切入点。所以它经常和break连用。
所以一般是这样写的
switch(command){
case “a”:add_entry();break;
case “b”:add_entry();break;
case “c”:add_entry();break;
case “b”:add_entry();break;
case “e”:add_entry();break;
}
break语句的实际效果就是把语句列表划分为不同的部分,这样switch语句就能够看到更加传统的方式工作。
当然多个case可以连用。(最后给出例子。)
default子句
如果所有的值和exptession都不匹配这个时候就绪要default子句。(当你可以确定exptession个数的时候你可以将某一中情况断定为default,然后少写一个case。这种方法是偷懒了,看着方便。但是我不推荐。因为这样程序报错的时候不容易划分。Default子句设定的目的是为了检测非法值的。)
switch语句的执行过程(不要认为所有的switch都要break)
计算程序输入中字符,单词和行的个数。每个字符都比需技术,但是字符和制表符号同时也做为单词的终止符号使用。也就是说,但出现换行时三个计数器都必须增加。
switch(ch){
case '\n':lines+=1;
case '\t' :
case ' ':words+=1;
default: char+=1;
}这个例子的bug就是连续的空格没有办法识别。
语法:switch (expression) statement
具体写法是这样的:
switch(expression){
case constant_exptession :statement
case constant_exptession :statement
}
每个case的标签必须具有一个唯一的值。常量表达式(constant-exptession)是指在编译器渐进性的求值的表达式的,他不能使任何变量。
执行过程中先计算expression的值然后匹配到case中cosntant-exptession的值,这个之后的语句都会被执行。也就是说case仅仅是语句执行的切入点。所以它经常和break连用。
所以一般是这样写的
switch(command){
case “a”:add_entry();break;
case “b”:add_entry();break;
case “c”:add_entry();break;
case “b”:add_entry();break;
case “e”:add_entry();break;
}
break语句的实际效果就是把语句列表划分为不同的部分,这样switch语句就能够看到更加传统的方式工作。
当然多个case可以连用。(最后给出例子。)
default子句
如果所有的值和exptession都不匹配这个时候就绪要default子句。(当你可以确定exptession个数的时候你可以将某一中情况断定为default,然后少写一个case。这种方法是偷懒了,看着方便。但是我不推荐。因为这样程序报错的时候不容易划分。Default子句设定的目的是为了检测非法值的。)
switch语句的执行过程(不要认为所有的switch都要break)
计算程序输入中字符,单词和行的个数。每个字符都比需技术,但是字符和制表符号同时也做为单词的终止符号使用。也就是说,但出现换行时三个计数器都必须增加。
switch(ch){
case '\n':lines+=1;
case '\t' :
case ' ':words+=1;
default: char+=1;
}这个例子的bug就是连续的空格没有办法识别。




