-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
Java语言基础2--流程控制和函数
If ..else..结构简写:变量=(条件表达式)?表达式1:表达式2 类似于三元运算符,
优点:可以简化代码。缺点:由于三元运算符是一个运算符,运算完必须有一个值。
2、选择语句
switch(表达式){
case:取值1
执行语句;
break;
case:取值1
执行语句;
break;
default
执行语句;
break;
}
特点:
(1)switch语句选择的类型只有四种:byte,short,int,char
(2)case之间与default写法没有顺序,但执行时先执行有答案的第一个case
(3)结束switch语句的两种情况:遇到break,执行到switch语句大括号结束
(4)如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
If 与switch选择哪种语句更合适?
对具体数值进行判断,并且数值不多,并且类型byte,short,int ,char,用switch,其他如区间,或者结果是boolean型时,用if
3、循环语句
什么时候用循环结构?当要对某些语句执行很多次时,使用循环语句。
(1)while 、do while
while(条件表达式) {执行语句;} //先判断条件,满足的话就执行。
do{执行语句;} while(条件表达式); //先执行,后判断,就是是条件无论是否满足,循环体至少被执行一次。
(2)for语句
for(初始化表达式;循环条件表达式;循环后的操作表达式) {执行语句;}
for里面的连个表达式运行的顺序:初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复整个过程,直到条件不满足为止。
注意:
a、循环条件只能是真或者假
b、初始化表达式是要是合法的表达式就可以
c、当有多个表达式时,用逗号隔开就可以。
d、要明确哪些语句参与循环,哪些不需要
(3)for循环和while循环区别:
for循环又称(计数器式循环)也就是说for循环大都是应用于明确循环次数这样的循环,while(当型循环)是不定次数循环,用在循环次数不确定的情况下。while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还可以继续使用,因为变量在for循环里定义的,出了循环体这一个作用域就不能使用,而while语句的变量在while之前被定义,在循环体结束后还可以使用。所以在写循环语句时,若变量只为循环而存在,则用for语句更好。
4、其他流程控制语句
(1)break语句:应用范围:选择结构和循环结构。Switch、for中,表示跳出当前循环语句
(2)continue语句:应用于循环结构。
注意:
a、这两个语句离开应用范围,存在是没有意义的。
b、continue语句是结束本次循环继续下次循环。
c、两个单独存在时,下面是不可以有语句的,因为执行不到
二、函数1、函数:函数就是定义在类中的具有特定功能的一段独立小程序。也称为方法。
Java中对功能的定义是通过函数的形式来实现的,Java中最小的功能单元是函数。
(1)函数格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2)
{
执行语句;
return返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
(2)函数的特点:
a、定义函数可以将功能代码进行封装,便于对该功能进行复用,提高了代码的复用性
b、函数只有被调用才会被执行
c、函数的出现对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
(3)函数中要注意的:
a、函数中只能调用函数,不可以在函数内部定义函数。
b、当使用void 时,没有返回结果,是不能使用Stytem.out.print输出的
c、定义函数时,函数的结果应该返回给调用者,交由调用者处理。
2、函数的重载
在同一个类中,存在一个以上的同名函数,但他们的参数个数和参数类型不同。也就是重载只与参数类型有关。
重载的特点:与返回值类型无关,只看参数列表。
好处:方便于阅读,优化了程序设计
重载的使用:
当定义的功能相同,但是参与运算的未知内容不同,这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
练习
嵌套循环练习的乘法表和打印矩形
package pack;
class Function{
public static void main(String[] args){
print99();
draw(7,9);
}
// 定义一个打印99乘法表功能的函数,
public static void print99(){
for(int x=1; x<=9; x++){
for(int y=1; y<=x; y++){
System.out.print(y+"*"+x+"="+y*x);
}
System.out.println();
}
}
// 定义一个功能,用于打印矩形。
// 思路:
// 1,确定结果:没有,因为直接打印,所以返回值类型是void
// 2,有未知内容吗?有,两个,因为矩形的行和列不确定。
public static void draw(int row,int col){
for(int x=0; x<row; x++){
for(int y=0; y<col; y++){
System.out.print("*");
}
System.out.println();
}
}
}