3.0程序流程控制
3.0.1判断结构
3.0.1.1if语句
1、A、B、C三种格式:
A. if(条件表达式)
{
执行语句;
}
B. if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
C. if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
……
else
{
执行语句
}
2、if语句特点:
01、每一种格式都是单条语句
02、第二种格式与三元运算符的区别:三元运算符运算完要有值出现。好处是可以写在其他表达式中。
03、条件表达式无论写成什么样子,只看的是最终的结果是否是true或者是false。
04、当if语句的控制区间{ }内只有一条语句时,可以省略其{ }。当没有{ }时,if语句只控制离他最近的一条语句。
3.0.2选择结构
switch语句
1、 格式
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default:
执行语句;
break;//最后的break可以省略,执行到此处时语句照样结束
}
2、 switch语句特点:
a) switch语句选择的基本类型只有四种:byte、short、int、char。还有枚举类型。
b) case之间与default没有顺序。先执行第一个case,没有匹配的case执行default(case和default的定义顺序是随意的,但是执行顺序是一定的:先第一个case后default)。
c) 结束switch语句的两种情况:遇到break,执行到switch语句结束的大括号处。
d) 如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
5、“case”是用来定义备选答案的;“取值”就是答案的具体内容;“break”跳出switch语句的;“default”当所有答案都不对的情况下执行的语句;
6、if语句和switch语句差不多,但是判断区间较多时,最好用if语句;判断结果是boolean型的最好用if语句。如果对具体数值并且数值不多的情况下进行判断,最好用switch语句(这时比较高效一点),其他情况都是一般使用if语句。
7、JDK7.0对switch语句进行了增强,可以判断字符串。JDK5.0中的switch语句可以判断枚举类型。
3.0.3循环结构
代表语句:while,do while,for
1、while语句格式
while(条件表达式)
{
执行语句;
}
说明:
01、 ctrl+c:强制结束cmd命令行的运行
02、 运用此语句的步骤:
a) 定义初始化的表达式
b) while(条件表达式)
c) {
d) 执行语句(循环体)
e) 要有循环变量表达式
f) }
03、 先判断条件表达式,满足则进入循环体
2、do while语句格式:
do
{
执行语句;
}while(条件表达式);//此处有分号哦
说明:
01、 do while特点是条件无论是否满足,循环体至少被执行一次。
02、 语句结束的标志:大括号“{}”和分号“;”。do while语句的结束标志是“;”分号。
03、 “while(条件表达式)”语句后面加上分号“;”,编译是通过的,{}部分是一个代码块是可以存在的,但是程序会一直做条件表达式的判断,而不会往下执行。
3、for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注意:
01、 for里面的三个表达式运行的顺序:初始化表达式只读一次;判断循环条件表达式,若为真就执行循环体;然后再执行循环后的操作表达式;接着继续判断循环条件。重复这个过程,直到条件不满足为止。
02、 while和for可以互换,区别在于for为了循环而定义的变量(作用域为for循环之内),在for循环结束后就在内存中释放。而while在循环时使用的变量在循环结束后还可以继续使用。(内存的优化:当变量只为循环存在,应当使用for语句,能够优化内存)
03、 最简单无限循环格式:while(true){},for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。(for循环的条件表达式不写的情况下默认为true)
04、 使用循环结构的情况是:当要对某些语句执行很多次的时候。
05、 一个程序例子说明表达式的运行顺序:
int x=1;
for(System.out.println(“a”);x<3;System.out.println(“b”))
{System.out.println(“c”);x++;}
程序运行结果是:acbcb
06、 “初始化表达式”是一个合格的表达式就可以,当表达式多的时候用逗号“,”隔开,此表达式也可以写for语句前面,但是必须留出它的位置;
07、 “循环条件表达式”是一个可以判断真假的表达式,不写的情况下默认为true;
08、 “循环后的操作表达式”是一个合格的表达式,当表达式多的时候用逗号“,”隔开,此表达式也可以写循环语句中,但是必须留出它的位置;
09、 累加思想:就是通过变量记录住每次变化的结果,通过循环的形式,进行累加操作。(字符串的不断增长,数据的不断加大或减小)
10、 计数器思想:通过一个变量记录数据的状态变化,也需要通过循环完成。(某一个内容中含有特定条件的个数)
11、 语句的嵌套:语句之中还有语句(循环嵌套语句,大圈套小圈)
12、 for嵌套循环的应用---打印图形
for(int x=0;x<5;x++)//外循环控制打印的行数
{
//x的增加,使得y与x的差距减小
for(int y=x;y<4;y++)
//控制打印的列数,也就是一行中元素的个数
{
System.out.print("*");
} System.out.println();//只有一个功能是换行
打印结果为:
****
***
**
*
规律总结:(全++的不是规律的规律)
尖朝上,可以改变条件,让条件随着外循环变化
尖朝下,可以初始化值,让初始化随着外循环变化
13、 break(跳出)语句、continue(继续)语句
14、 break语句应用范围:选择结构和循环结构(跳出当前循环)
15、 continue语句:只应用于循环结构。
a) 这两个语句离开应用范围,存在是没有意义的
b) 这两个语句单独存在下面的都不可以有语句,因为执行不到
c) continue语句是结束本次循环继续下次循环
d) 标号的出现,可以让这两个语句作用于指定的范围
标号说明:标号只能用于循环上,为循环起名字的一种方式,break和continue语句都可以使用。
4.0函数
4.0.1函数的定义
1、 函数的定义
01、 函数就是定义在类中的具有特定功能的一段独立小程序
02、 函数也称为方法
2、 函数的格式
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
执行语句;
return 返回值;
}
a) 返回值类型:函数运行后的结果的数据类型
b) 参数类型:是形式参数的数据类型
c) 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数
d) 实际参数:传递给形式参数的具体数值
e) return:用于结束函数
f) 返回值:该值会返回给调用者
4.0.2函数的特点
1、定义函数可以将功能代码进行封装
2、便于对该功能进行复用
3、函数只有被调用才会被执行
4、函数的出现提高了代码的复用性
5、对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行可以省略不写。当返回值类型是void时,调用它的语句不能有打印语句(因为都没有结果返回怎么打印)。
6、注意:
01、函数中只能调用函数,不可以在函数内部定义函数
02、定义函数时,函数的结果应该返回给调用者,交调用者处理
4.0.3函数的应用
1、两个明确
01、明确要定义的功能最后的结果是什么?
02、明确在定义该功能的过程中,是否需要未知内容参与运算
2、示例:
01、需求:定义一个功能,可以实现两个整数的加法运算
02、分析:
a、该功能的运算结果是什么?两个数的和,也是一个整数(int)
b、在实现该功能的过程中是否有未知内容参与运算?加数和被加数是不确定的。(两个参数int,int)
c、代码:
int getSum(int x,int y)
{
return x+y;
}
4.0.4函数的重载(overload)
1、重载的概念
在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同(参数列表)即可重载。
2、重载的特定
与返回值类型无关,只看参数列表
3、重载的好处
方便阅读,优化了程序设计
4、重载使用的情况
当定义的功能相同,但参与运算的未知内容不同,那么这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
5、重载示例:
01、返回两个整数的和
int add(intx,int y){return x+y;}
02、返回三个整数的和
int add(intx,int y,int z){return x+y+z;}
03、返回两个小数的和
double add(doublex,double y){return x+y;}
6、函数之内也可以调用其他函数,以增强代码的复用性。