在excel中怎样进行加减乘除运算?excel加减乘除-英雄云拓展知识分享
147
2023-10-25
【摘要】 本书摘自《Java核心技术》一书中第3章,第8节,作者是来自美国的凯·S.霍斯特曼(Cay S.Horstmann),由林琪、苏钰涵等译。
3.8.5 多重选择: switch语句
在处理多个选项时,使用if/else结构显得有些笨拙。 Java 有 一 个与C/C++ 完全一样的 switch语句。
例如,如果建立一个如图3- 13所示的包含4个选项的菜单系统,可以使用下列代码:
Scanner in = new Scanner(System.in);
System,out.print("Select an option (1, 2,3, 4)");
switch(choice)
{
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
default:
// bad input
break;
}
switch语句将从与选项值相匹配的 case标签开始执行,直到遇到 break语句,或者执行 到 switch语句的结束处为止。如果没有相匹配的 case标签,而有 default子句,就执行这个 子句。
警告: 有可能触发多个 case 分支。如果在case 分支语句的末尾没有break 语句,那么 就会接着执行下一个case分支语句。这种情况相当危险,常常会引发错误。为此,我 们在程序中从不使用 switch语句。
如果你比我们更喜欢switch语句,编译代码时可以考虑加上-Xuint:fallthrough 选
项,如下所示:
javac -XLint:fallthrough Test.java
这样一来,如果某个分支最后缺少一个break语句,编译器就会给出一个警告消息。
如果你确实正是想使用这种“直通式”(fallthrough)行为,可以为其外围方法加一 个注解 QSuppressWarnings("fallthrough")。 这样就不会对这个方法生成警告了。(注解是为编译器或处理Java 源文件或类文件的工具提供信息的一种机制。我们将在卷Ⅱ的第8 章中详细讨论注解。)
case 标签可以是:
● 类型为 char、byte、short 或 int 的常量表达式。
● 枚举常量。
● 从 Java7 开始, case 标签还可以是字符串字面量。
例如:
String input =...;
switch (input.toLowercase())
{
case "yes":// 0K since Java 7
break;
当在 switch语句中使用枚举常量时,不必在每个标签中指明枚举名,可以由 switch的表 达式值推导得出。例如:
Size
sz=..;
switch (sz)
{
case SMALL:// no need to use Size.SMALL
break;
3.8.6 中断控制流程的语句
尽管Java 的设计者将goto作为保留字,但实际上并没有打算在语言中使用它。通常,使 用goto语句被认为是一种拙劣的程序设计风格。当然,也有一些程序员认为反对 goto的呼 声似乎有些过分(例如, Donald Knuth 就曾写过一篇名为《Structured Programming with goto statements》 的著名文章)。这篇文章说,无限制地使用 goto语句确实很容易导致错误,但在 有些情况下,偶尔使用goto跳出循环还是有益处的。 Java设计者同意这种看法,甚至在Java 语言中增加了一条新的语句:带标签的break, 以此来支持这种程序设计风格。
下面首先看一下不带标签的 break语句。与用于退出 switch 语句的 break 语句一样,它也 可以用于退出循环语句。例如,
while (years <= 100)
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
if (balance >= goal) break;
years++;
}
在循环开始时,如果 years>100, 或者在循环体中 balance2goal, 则退出循环语句。当然, 也可以在不使用 break 的情况下计算 years的值,如下所示:
while (years <= 100 & balance < goal)
{
balance += payment;
double interest = balance * interestRate / 100;
balance += interest;
if (balance < goal)
years++;
}
但是需要注意,在这个版本中,检测了两次 balance 与C++ 不同, Java还提供了一种带标签的break语句,用于跳出多重嵌套的循环语句。 有时候,在嵌套很深的循环语句中会发生一些不可预料的事情。此时可能更加希望完全跳出 所有嵌套循环之外。如果只是为各层循环检测添加一些额外的条件,这会很不方便。 这里有一个示例说明了break语句的工作状态。请注意,标签必须放在希望跳出的最外 层循环之前,并且必须紧跟一个冒号。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~