第四章 控制执行流程的一些笔记以及关于char的一点东西

关于char类型,Java采用16位的Unicode字符集,char16位,而16位二进制最大值等于416进制最大值,于是,第一个代码级别(基本的多语言级别)的代码点是从U+0000U+FFFFUnicode标准中,代码点采用十六进制书写,并加上前缀U+,例如U+0041就是字母A的代码点,其十进制值是我们熟悉的65)。——以上内容参考自《JAVA2核心技术(卷I:基础知识)》

书上有一段代码:

public   class  ListCharacters  {
    
public static void main(String[] args) {
        
for(char c = 0; c < 128; c++)
            
if(Character.isLowerCase(c))
                System.out.println(
"value: " + (int)c + " character: " + c);
    }

}

当然书上的目的仅仅用来示例for循环的,我开始的时候却诧异于char类型居然可以像数字一样做加减法,是的,的确可以,char类型实际上也是数字(准确的说是代码点),书上第56页明确的有这样一段话:“如果对基本数据类型执行算术运算或按位运算,大家会发现,只要类型比int小(即char,byteshort),那么在运算之前,这些值会自动转换成int

并且,我在试验类似代码的时候发现:println(int x)方法打印出来的数字总是十进制值,即使变量x开始被设置成十六进制值。


return/break/continue:

return:退出并返回值;
break:强行退出循环;
continue:停止当前迭代,退回循环起始处,进行下一次迭代。

对于break和continue两个关键字可添加标签,如以下代码:

label1:
outer
- iteration {
    inner
-iteration{
        
//
        break;   // (1)
        
//
        continue;   // (2)
        
//
        continue label1;   // (3)
        
//
        break label1;   // (4)
    }

}
在(1)中,break中断内部迭代,回到外部迭代;在(2)中,continue使执行点移回内部迭代的起始处;在(3)中,continue label1同时中断内部迭代以及外部迭代,直接转到label1处,随后, 它实际上是继续迭代过程,却从外部迭代开始;在(4)中,break label1也会中断所有迭代,并回到label1处,但并不重新进入迭代,也就是说, 它实际上完全终止了两个迭代

switch语句:

switch (integral - selector) {
    
case integral-value1: statement; break;
    
case integral-value2: statement; break;
    
case integral-value3: statement; break;
    
default: statement;
}
式中integral-selector称为“ 整数选择因子”,integral-value称为“ 整数值”, 即两者都必须是int或char那样的整数值(C#中可以是字符串)。还有, 如果case后面没有break,那会继续执行下一个case,default后面加不加break都无所谓,因为已经到末尾了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值