-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
一、语句
程序流程控制
1:顺序结构
按照正常顺序执行。。。
2:判断结构
if语句
(1)三种格式:
1. if(条件表达式){执行语句;}
2. if(条件表达式){执行语句;}else{执行语句;}
3. if(条件表达式){执行语句;}else if (条件表达式){执行语句;}……else{执行语句;}注意 : 如果 if 语句后面不加 {}, 只能控制一条语句 , 加 {} 是控制整个 {} 里面的 语句 , 初学者建议加 {}.
(2)if语句特点:
a,每一种格式都是单条语句。b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是:可以写在其他表达式中。c,条件表达式无论写成什么样子,只看最终的结构是否是true 或者 false;
(3)if语句和三元运算符的区别
三元运算符可以称之为if语句的简写形式,但是只要简写就会有一定的弊端。三元运算符,是一种运算符号,也就是说每次执行后,必须有结果。if...else是语句,只是控制流程,执行后不一定有结果if...else可以里面可以有语句,并输出结果,三元运算符不可以。if else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2;(就是三元运算符)三元运算符的好处和弊端:好处:可以简化if else代码。弊端:因为是一个运算符,所以运算完必须要有一个结果。
注意:三元运算符的表达式1和2必须有相同的类型。
(4)代码示例:
class IfDemo { public static void main(String[] args) { int x = 1; if(x>1) { System.out.println("yes"); } else { System.out.println("a"); } int a = 9,b; b = (a>1)?100:200; System.out.println(b); if(a>1) b = 100; else b = 200; System.out.println(b); int n = 3; if(n>1) System.out.println("a"); else if(n>2) System.out.println("b"); else if(n>3) System.out.println("c"); else System.out.println("d"); System.out.println("over"); } }
3:选择结构
switch语句
(1)格式:
switch(表达式){case 取值1:执行语句;break;case 取值2:执行语句;break;…...default:执行语句;break;}
(2)switch语句特点:
1)switch语句选择的类型只有五种:byte,short,int , char。1.7版本可以接收String字符串。2)case与default之间没有顺序。先执行第一个case,没有匹配的case执行default。3)结束switch语句的两种情况:遇到break,执行到switch语句结束。4)如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
(3)代码示例:
public class SwitchDemo { public static void main(String[] args) { int a=4,b =2; char ch = '+';//定义条件。如'+'符合了第二个。打印a+b的值 switch(ch) { case '-': System.out.println(a-b); break; case '+': System.out.println(a+b); break; case '*': System.out.println(a*b); break; case '/': System.out.println(a/b); break; default: System.out.println("没有满足的"); } } }
(4)if语句和switch语句的区别
1)如果对几个具体的值进行判断,可以使用switch,也可以使用if,但是建议使用switch效率会更高一些。2)如果是对区间进行判断或者多boolean结果的判断,只能用if。因为switch里面不接收boolean的值
4:循环结构
代表语句:while , do while , for
1:while语句格式:
while(条件表达式){执行语句;控制循环次数;}
2:do while语句格式:
do{执行语句;控制循环次数;}while(条件表达式);
do while特点:是条件无论是否满足,循环体至少执行一次。
定义循环的前提是:1,明确循环条件2,控制循环次数if是对条件进行一次判断,while是对条件进行多次判断
3:for循环语句格式:
格式:for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;(循环体)}
表达式运行的顺序:1初始化表达式-2-循环条件表达式--3-执行语句-4--循环后的操作表达式。重复1-4步骤直到条件不满足为止。
最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环
while和for的区别:while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的 变量在循环结束后还可以继续使用。
最简单的2种无限循环代码:1 : for( ; ; ){} 2: while(true){}
for循环练习:获取1~100之间 7的倍数的元素个数。并打印。
class ForDemo { public static void main(String[] args) { int count = 0; for(int x=1; x<=100; x++) { if(x%7==0) count++; } System.out.println("count="+count); } }
while循环练习:1,获取1~100的和,并且获取1~100间是7倍数的元素并打印。
class WhileDemo { public static void main(String[] args) { int x=1; int num=0; while (x<=100) { num+=x;//进行累计 就是num加x在赋值给num x++; if (x%7==0)判断是否满足 { System.out.println(x);//打印7的倍数 } } System.out.println(num);//打印1-100的和 } }
for循环嵌套练习:
//打印99乘法表 class Demo { public static void main(String[] args) { for (int x=1 ;x<=9 ;x++ ) { for (int y=1;y<=x ;y++ ) { System.out.print(y+"*"+x+"="+y*x+"\t"); } System.out.println(); } } }
/* 在控制台打印下面图形: ----* ---* * --* * * -* * * * * * * * * ---------- * * * * * -* * * * --* * * ---* * ----* */ class Demo { public static void main(String[] args) { for (int x=0; x<5 ;x++ ) { for(int y=x+1; y<5 ; y++) { System.out.print("-"); } for(int z=0; z<=x ; z++) { System.out.print("* "); } System.out.println(); } for (int x=0;x<=10 ;x++ ) { System.out.print("-"); } System.out.println(); for (int x=0; x<5 ;x++ ) { for(int y=0; y<x ; y++) { System.out.print("-"); } for(int z=x; z<5 ; z++) { System.out.print("* "); } System.out.println(); } } }
5:其他流程控制语句
break(跳出), continue(继续)break语句:应用范围:选择结构和循环结构。continue语句:应用于循环结构。
a,这两个语句离开应用范围,存在是没有意义的。b,这个两个语句单独存在下面都不可以有语句,因为执行不到。c,continue语句是结束本次循环继续下次循环。d,标号的出现,可以让这两个语句作用于指定的范围。e:这两个语句后面不能有参数,否则编译失败.
代码实例:
class Demo { public static void main(String[] args) { int y = 4; int x = 4; for(int i = 1; i<=10; i++) { //当i等于x的时候,退出for循环 if(i==x) { break; } System.out.println("i = " + i); } for(int j = 1; j<=10; j++) { //当j等于y的时候,退出本次for循环,并继续执行下次for循环 if(j==y) { continue; } System.out.println("j = " + j); } System.out.println("你好");//能够打印出来。说明break;是退出当前循环,而不是结束语句。 } }
6:语句总结
什么情况下,使用哪个语句。1)当对某几个值进行判断的时候,可以使用if语句,或者switch语句,建议switch,但是,使用switch要注意,它只能操作五种类型的值,byte short,int,char,String如果是五种类型以外的值,需要使用if。2)如果对数据区间进行判断,或者对运算结果是boolean类型的进行判断。使用if语句。3)当需要某些语句执行很多次的时候,使用循环结构。如果定义变量只为循环增量存在时,可以使用for语句。(如果对一个条件进行判断使用if,//如果对该条件进行多次判断,使用while。)4)如果要结束循环,可以控制循环条件,或者通过break语句完成。如果要控制循环的流程,是否该继续执行,可以通过continue或者break来完成。
二、函数
1、函数的定义:
函数就是定义在类中的具有特定功能的一段独立小程序。函数也称为方法。
2、函数的由来:
发现运算时,因为获取不同数据的运算结果,代码出现了重复。为了提高代码的复用性。对代码进行抽取,将这个部分定义成一个独立的功能,方便于日后使用。
java中对功能的定义是通过函数的形式来体现的。
3、函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return返回值;
}
1)返回值类型:函数运行后的结果的数据类型。
2)参数类型:是形式参数的数据类型。
3)形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
4)实际参数:传递给形式参数的具体数值。
5)return:用于结束函数。
6)返回值:函数运行后的结果的值,该值会返回给调用者。
4、函数的特点:
1)定义函数可以将功能代码进行封装
2)便于对该功能进行复用
3)函数只有被调用才会被执行
4)函数的出现提高了代码的复用性
5)对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。
注意:
函数中只能调用函数,不可以在函数内部定义函数。
定义函数时,函数的结果应该返回给调用者,交由调用者处理。
函数只为实现他所需功能,不要实现不需要的功能
输出语句只能对有返回值类型的函数调用后打印,不能对没有返回值类型的函数(void)进行打印
学习了函数后,再写代码,就不要将代码都放在main函数里,main函数的作用,用于调用你定义的函数,并测试该功能是否可用
5、函数应用的两个明确:
1)既然函数是一个独立的功能,那么该功能的运算结果是什么先明确,因为这是在明确函数的返回值类型;
2)再明确在定义该功能的过程中是否需要未知的内容参与运算(内容是完全能独立实现,还是要依靠调用者给我们一些值才能具体实现),因为这是在明确函数的参数列表(参数的类型和参数的个数)。
注意:函数只能调用函数,不可以在函数内部定义函数。
6、函数的重载:
1)概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
2)特点:与返回值类型无关,只看参数列表(参数类型以及参数个数)。
3)好处:方便于阅读,优化了程序设计。
4)什么时候用重载?
当定义的功能相同,但参与运算的未知内容不同。那么,这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
5)重载示例:
/返回两个整数的和
int add(int x,int y){return x+y;}
//返回三个整数的和
int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
double add(double x,double y){return x+y;}
7、方法签名:
包括方法名和参数列表。它们合起来唯一的标识出某个方法。