一个棘手的项目模块突然被安排转交给了他人,让我原本安排的满满的工作行程猛然空了下来。在本周工作时间的剩余空隙内,就把上周看过却没写的java基础那点儿事,拿出来说说吧。
上周继续看的java编程思想,第三章 控制程序流程。当然学过C语言的童鞋很快就能阅读完本章。我本着好好学习的心态,认认真真的阅读了本章,有几点因与以往学习的C、C++不同,所以特此记录。
1. while(n=1) {
}
这个语法在C 和C++里,往往是因为程序员大意将n==1误写为n=1,这样的后果将会造成这个循环为一个死循环。c/c++是没办法识别出这类错误的。所以在c/c++中一般习惯性会把判断条件写为1==n,就是为了避免少些一个=号的情况发生。java先生很不错,上面的句型它是不允许编译通过的。不过=号两边的变量如果均为布尔型,它也识别不出来。
2. sizeof
亲,看到sizeof是不是特激动,笔试面试经常遇到,有木有。今天我也趁机好好的回顾一下sizeof和strlen这两个函数的用法和区别。
strlen(char*)函数求的是字符串的实际长度,它求得方法是从开始到遇到第一个'\0',如果你只定义没有给它赋初值,这个结果是不定的,它会从首地址一直找下去,直到遇到'\0'停止。
sizeof()返回的是变量声明后所占的内存数,不是实际长度。
比如 char aa[10] = {'1'};
strlen(aa) = 1;
sizeof(aa) = 10;
我之所以会提到sizeof()并不是它在java里会干更加神奇的事情,而是。。java根本就不需要sizeof。java是与平台无关的语言,它所有的数据类型大小在所有机型上都是一样的,所以不管是32位机还是16位机,对java来讲都是一样的,无需关系size。
3.中断和继续。
在循环语句里,经常会用到break和continue,break是跳出距离它最近的一个循环,continue是在距离它最近的循环中开始新的一次循环操作。
我是给不喜欢用goto语句的人,所以在以为的c编程中,如果是多层的循环语句,经常会用到几个break以跳出循环继续操作。这次在java中又学到一招新的,加标签。下面例子是书上的,我觉得蛮好,就不另外想了,大家一起学习学习。
label1:
外部循环{
内部循环{
//...
break; //1
//...
continue; //2
//...
continue label1; //3
//...
break label1; //4
}
}
在条件1 中,break 中断内部循环,并在外部循环结束。在条件2 中,continue 移回内部循环的起始处。但
在条件3 中,continue label1 却同时中断内部循环以及外部循环,并移至label1 处。随后,它实际是继续
循环,但却从外部循环开始。在条件4 中,break label1 也会中断所有循环,并回到label1 处,但并不重
新进入循环。也就是说,它实际是完全中止了两个循环。
本章亮点就发现这么多,欢迎批评指正,提出宝贵意见,QQQ~~~