1、Julycase 8:Augustcase 9:Septembercase 10:Octobercase 11:Novembercase 12:December这个switch语句计算它的表达式,在这个例子中是计算month的数值,然后计算适当的case 语句。这样,程序的输出为:August。当然,你可以使用if语句来实现它:if (month = 1) System.out.println( else if (month = 2) . . . 决定使用if语句还是switch语句的关键主要是根据可读型以及其它因素。if语句可以在更大范围或者条件来决定,而switch只有根据单个整型变量来做
2、决定。同时,提供给case语句的数值必须是单一的。另外一点是,switch语句在每个case之后有一个break语句。每个break语句终止了swtich语句,并且控制流程继续switch块之后的第一个语句。break语句是必须的,因为没有它,case语句就会失效,也就是说,没有break语句,控制流程按顺序执行case语句。一般地,你可以使用break来在分支语句中终止循环。最后你可以在switch最后使用缺省地语句来处理所有的上面没有处理的情况。. . .default:Hey, thats not a valid month!JAVA编程语言支持下面的三种分支结构:break语句cont
3、inue语句return语句 下面逐个介绍:(1)break语句break语句有两种形式:未标志的和标志的。你在前面就已经看过了未标志的break语句。一个未标志的break语句终止swtich语句,控制流程马上转到switch语句下方的语句。下面的例程BreakDemo,它包含了一个for循环查找数组中特定的数值:public class BreakDemo int arrayOfInts = 32, 87, 3, 589, 12, 1076,2000, 8, 622, 127 ;int searchfor = 12;int i = 0;boolean foundIt = false;for
4、 ( ; i arrayOfInts.length; i+) if (arrayOfIntsi = searchfor) foundIt = true;break;if (foundIt) Found + searchfor + at index + i); else System.out.println(searchfor + not in the array当数值被找到的时候,这个break语句终止了for循环。控制流程就转到for语句的下面的语句继续执行。这个程序的输出为: Found 12 at index 4未标志形式的break语句被用来终止内部的switch、for、while或
5、者do-while。而标志形式的break语句终止一个外部的语句,它是通过在break语句中使用一个标志来实现的。下面的例程BreakWithLabelDemo跟前面的例子有点相似,只不过它是在一个两维数组中搜索一个数值。利用两个嵌套的for循环遍历了整个数组。当数值被找到了,标志形式的break语句就终止标志的search语句,这个search语句是在for循环外部的:public class BreakWithLabelDemo int arrayOfInts = 32, 87, 3, 589 , 12, 1076, 2000, 8 , 622, 127, 77, 955 ;int j =
6、 0;search:for (j = 0; j op1 op2 op1大于op2的时候 = = op2 op1大于等于op2的时候 op1 op1小于op2的时候 op1小于等于op2的时候 = op1 = op2 op1等于op2的时候 !op1 !op1不等于op2的时候 关系运算符经常用在条件运算符中来构造更复杂的判断表达式。JAVA变成语言支持六种条件运算符:五个双元运算符和一个单元运算符,如下表所示;什么情况返回true &op1 &op1 和 op2都是true,有条件地计算op2 | op1 | op2 op1 或者 op2是true,有条件地计算op2 op op为false
7、op1 和 op2都是true,总是计算op1和op2 | op1 | op2 op1 或者 op2是true,总是计算op1和op2 op1 op2 如果op1和op2是不同的,也就是说,有其中一个运算对象是真的而不是两个都为真的时候 运算符可以完成条件AND的操作。你可以使用两个不同的关系运算符和&来决定是否两个关系都为true。下面的一行代码使用了这个技术来决定是否数组的索引处在两个边界之间。它决定了是否索引都大于等于0并且小于等于NUM_ENTRIES(它是在之前被定义为常数)。0 = index & index NUM_ENTRIES这里注意在一些实例中,第二个运算对象可能不用运算,因为如果第一个运算对象是false,则结果就一个是false,因此不用在计算第二个运算对象了。你看看以下的代码:(numChars 1;13的二进制为1101.右移一位的结果为110,即为十进制的6.左边的位用零来填充。下面的表给出了JAVA编程语言提供的四种运算符来对它们的运算对象执行按位操作:按位与 按位或 按位异或 op2 按位求补 当它的运算对象为数字的时候,&运算符为每一个运算对象的每位执行按位AND功能。AND在运算对象的相应位为1的时候结果才为1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1