程序设计从零开始之语句呢
民生法规 2021-08-24 13:30 字号: 大 中 小
处理很多情况都应有一定的准则约束 上面虽然看起来很复杂,但依旧是一个单句,应该注意当写了一个“else”时,编译器向上寻找最近的一个“if”以和其匹配,因此上面的“else”是和“if( a 10 )”匹配的,而不是由于上面那样的缩进书写而和“if( a )”匹配,因此b *= a;只有在a大于等于10的时候才执行,而不是想象的a为零的时候。
还应注意前面书写的if( a ) long c;。这里的意思并不是如果a非零,就定义变量c,这里涉及到作用域的问题,将在下篇说明。
switch 这个语句的定义或多或少地是因为实现的原因而不是和“if else”一样由于逻辑的原因。先来看它的格式:switch(整型数字)语句。
上面的整型数字和if语句一样,只要是一个数字就可以了,但不同地必须是整型数字(后面说明原因)。然后其后的语句与前相同,只要是语句就可以。在语句中,应该使用这样的形式:case 整型常数1:。它在它所对应的位置定义了一个标号,即前面goto语句使用的东西,表示如果整型数字和整型常数1相等,程序就跳转到“case 整型常数1:”所标识的位置,否则接着执行后续的语句。
long a, b = 3;
switch( a + 3 )
case 2: case 3: a++;
b *= a;
上面就表示如果a + 3等于2或3,就跳到a++;的地址,进而执行a++,否则接着执行后面的语句b *= a;。这看起来很荒谬,有什么用?一条语句当然没意义,为了能够标识多条语句,必须使用复合语句,即如下:
long a, b = 3;
switch( a + 3 )
{
b = 0;
case 2:
a++; // 假设地址为3003
case 3:
a--; // 假设地址为3004
break;
case 1:
a *= a; // 假设地址为3006
}
b *= a; // 假设地址为3010
应该注意上面的“2:”、“3:”、“1:”在这里看着都是整型的数字,但实际应该把它们理解为标号。因此,上面检查a + 3的值,如果等于1,就跳到“1:”标识的地址,即3006;如果为2,则跳转到3003的地方执行代码;如果为3,则跳到3004的位置继续执行。而上面的break;语句是特定的,其放在switch后接的语句中表示打断,使程序跳转到switch以后,对于上面就是3010以执行b *= a;。即还可如此:
switch( a ) if( a ) break;
由于是跳到相应位置,因此如果a为-1,则将执行a++;,然后执行a--;,再执行break;而跳到3010地址处执行b *= a;。并且,上面的b = 0;将永远不会被执行。
查看本文来源
门窗十大名牌加盟商洛白癜风医院哪家好
石家庄白癜风重点医院
-
-
斯诺克英锦赛特鲁姆普61戴维斯半决赛将战
斯诺克英锦赛特鲁姆普戴维斯 半决赛将战马奎尔北京时间12月...
2020-07-09 | 民生法规
-
-
八一女排为年轻交学费王之腾金软景起核心作
八一女排为年轻交学费 王之腾:金软景起核心作用发布会现场...
2020-07-03 | 民生法规
-
-
房价普跌局面未现部委表态调控绝不松劲搭配
房价普跌局面未现 部委表态调控绝不松劲新一轮房地产调控政...
2020-05-31 | 民生法规
-
-
建立完善信用建设海南将规范房地产估价行业搭配
建立完善信用建设 海南将规范房地产估价行业记者日前从海南...
2020-05-26 | 民生法规
-
-
区民政局积极探索日间照料中心运营机制创新
区民政局积极探索日间照料中心运营机制创新,助推一流 养老...
2019-12-17 | 民生法规
-
-
唐山春暖花开时远离猩红热
唐山:春暖花开时 远离猩红热( 马硕 报道)春天来了,天气...
2019-07-12 | 民生法规