Java语言基础--02.基本组成元素
语句、函数
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
1. 流程控制语句(重点概述)
1). 条件语句
(1). If、if-else和if-else if- elseif-…else 注意事项
[1].if-else和三目运算符的关系
{1}.三目运算符是if-else的简写
e.g.int a= 9, b;
b =(a> 1)? 100:200;
等价于
if(a >1) b =100; else b =100;
三目运算符书写方便,所以两者等价的时候,推荐使用三目运算符
{2}. 只要是简写,那就存在着局限性。
{2}.1三目运算符只能简写if和else中处理内容为一条语句的情况。
{2}.2三目运算符条件表达式以外的每一个表达式对应的执行语句必须有返回结果。
只要是表达式,就必须要求有一个完整的返回结果
e.g. if (a>1)
System.out.println(“Hello World!”);
else
System.out.println(“abc”);
如果简化成
(a >1)? System.out.println(“Hello World!”):System.out.println(“abc”);
由于PrintWriter的println方法返回值为void 所以不满足三目运算符除条件表达式以外都要有返回结果的条件,导致编译出错。
(2). switch---case语句
[1]. 涉及四个关键字:switch、case、break和default;
[2]. switch-case语句执行顺序:前提没有break语句存在。无论多个case和default之间的相对位置关系如何,都是先执行符合条件的case语句,最后执行default (无论default在哪,哪怕是在最前面,也是最后执行)。
[3]. switch-case语句的2种结束形式:
{1}.如果有break存在,执行到break语句。匹配上对应的case之后,执行到匹配的case之后,直到遇见break就停止。;
{2}.如果没有break存在,执行到switch的右边“}”
e.g.
int x =6;
switch(x){
default: System.out.println("d");break;
case 4: System.out.println("a");break;
case 6: System.out.println("b");break;
}
执行过程就是x从写在最前面的case开始匹配。6!=4跳过,但是6=6执行里面的输出语句,发现里面有break语句,执行完syso(”b”)就结束了。
int x =6;
switch(x){
default: System.out.println("d");
case 6: System.out.println("b");
case 4: System.out.println("a");
}
这个时候,执行顺序就是先和6=6,成立,执行syso(”b”); 由于此时没有break,有没有右大括号},所以程序要继续执行下去。而不再判定case中的对应的条件是否满足。直到执行完default中的内容,遇见}程序才停止。
[4]. switch中被选择的表达式只能接受4中类型的变量,byte, short, int和char 不接受long!!!
Java5之后,接受枚举类型的变量
Java7之后,接受String类型的变量
(3). 循环语句
【1】. for循环的格式:
for(初始化exp;循环条件exp;循环体执行后操作的exp){
循环体
}
注意:{1}.中间的exp返回值一定要是boolean类型的值!!否则编译出错!!!
e.g for (System.out.println("a");
System.out.println("b"); System.out.println("c")) {
System.out.println("d");
}
由于中间的输出表达式执行完之后,返回void所以编译会出错!!!
{2}. 最后一个表达式一定是在for中的循环体执行完之后,才执行!!!!
{3}.第一个表达式仅仅是初始化作用,仅仅执行一次。
{4}.第一个和第三个表达式没有特殊的要求,是合法的表达式即可。
【2】.无限循环的两种表示形式:
{1}.采用for循环构成无限循环语句
关键在于:中间条件表达式不写,为空,for循环默认是true
for(;;){} <=è for(;true;){}
{2}. 采用while循环构成无限循环语句
while(true){}
(4). break和continue语句
[1]. break和continue语句都与自己的作用范围,离开这个范围,这两个关键字不起作用!!!!
如果在应用范围之外写了continue或者break语句,会编译出错。
{1}.break作用范围有2个:选择结构switch和循环结构
break表示跳出对应的case或对应的循环体。
break可以加标号实现跳出指定的循环。
e.g. w:for (int i = 0; i < 3; i++) {
q:for (int j = 0; j < 3; j++) {
System.out.println("x");
break w;//跳出最外层循环。
}
}
{2}. continue作用范围只有1个:循环结构
程序执行到continue语句时候,其后的语句便不在被执行,而是跳到下一次循环。但是for循环的exp3是在continue执行完要立刻执行的。
结论:continue直接使得程序跳转到for的exp3,然后再执行下一次循环!!
{3}.return、throw、continue和break单独存在时,前面可以加语句,但是他们的后面不能加任何语句!!!因为执行不到,所以只要在return、throw、continue或者break之后加了语句,就会编译报错。e.g.
for (System.out.println("a");;System.out.println("c")) {
break;
int x =2;//编译出错!!!!!!
}
2. 函数
1). 函数:就是在类中具有特定功能的一段程序
2). 函数的基本语法格式:
修饰符 返回值类型 函数名(参数列表){
执行语句
returnxxx;
}
注意:函数不能嵌套定义!!!
public static void A(){
public static void B(){// 嵌套定义 编译出错!!!
}
}
3). 如何定义一个函数?
(1). 首先明确函数的计算结果是什么;
(2). 明确在定义功能的过程中是否需要未知的内容参与运算
4). 函数的重载
(1). 概念
在同一个类中(这是范围),允许存在一个以上的同名函数,只要他们的参数列表不一样即可(要么参数个数不一样,要么参数类型不一样)
(2). 重载的特点
重载要求函数名相同但是参数列表不同,其余的返回值类型、修饰符和是否抛出异常与两个函数在一个类中是否构成重载没有关系。
(3). 何时使用重载
当定义函数的功能相同,但是参与运算的位置内容(也就是函数的参数)不同,这时候,可以根据函数具有相同的功能定义函数名称相同的函数,但是参数列表不同。函数名相同便于进行阅读。
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------