一、程序流程控制:一般程序的结构主要有顺序结构、判断结构、选择结构、循环结构这几种。它们的共同点就是程序只有一个入口和一个出口。
1、顺序结构:程序从上至下逐行执行,一条语句执行完之后继续执行下一条语句,直至末尾。
2、判断结构 ---->if语句
if语句的三种格式:
①.if (条件表达式) {
执行语句;
}
②.if (条件表达式) {
执行语句;
} else {
执行语句;
}
③.if(条件表达式1) {
执行语句1;
} else if (条件表达式2) {
执行语句2;
} else {
执行语句;
}
注意:如果if控制的语句只有一条,则大括号可以不用写。
if...else...语句和三元运算符的区别:
①.三元运算符是if...else的简写格式。
例:int x=1,y; y=(x>0)?100:200; 等价于if(x>0){y=100;}else{y=200;}
②.三元运算符:
好处:可以简化if...else代码。
弊端:因为是一个运算符,所以运算完必须要有一个结果。
3、选择结构 --> switch语句
①.格式:switch (表达式) {
case 取值1;
执行语句1;
break;
case 取值2;
执行语句2;
break;
......
default:
执行语句;
break;
}
②.switch语句的特点:
a. switch语句选择的类型有四种基本数据类型(JDK1.5之前):byte、short、int、char;JDK1.5引入了枚举类型,即enum类型;JDK1.7新增了String类型。
b. case之间与default没有顺序。先执行第一个case,如果没有匹配的case就执行default。
c. 结束switch语句的两种情况:遇到break或者执行到switch语句结束。
d. 如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
③. if...else和switch判断语句的区别:
e. if...else除了能判断具体数值,还能判断区间。如果当区间特别大的时候,用switch判断区间会比较麻烦。
f. 对于运算结果是boolean型的语句,if语句可以判断,而switch语句则不行。
④.if语句和switch语句什么时候用?
if语句和switch语句很像。如果判断的具体数值不多,并且符合byte、short、int、char、enum、String这几种类型,虽然这两个语句都可以使用,但更建议使用switch语句,因为效率稍高。
其它情况:对区间判断,对结果为boolean类型判断,使用if语句,if的使用范围更广。
4、循环结构 --> while/do...while/for
①.while语句格式:
while (条件表达式) {
执行语句;
}
②.do...while语句格式:
do
{
执行语句;
} while (条件表达式)
③.while和do...while的区别:
while:先判断条件,只有条件满足才执行循环体。
do...while:先执行循环体,再判断条件,条件满足,再继续执行循环体。
总结:do...while语句的特点是:无论条件是否满足,循环体至少被执行一次。
④.for循环格式:
for (初始化表达式; 循环条件; 循环后的操作表达式)
{
执行语句;
}
示例:
注意:
a. for里面的连个表达式运行的顺序:初始化表达式只读一次,判断循环条件,结果为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复整个过程,直到条件不满足为止。
b. while与for可以互换,区别在于for为了循环而定义的变量在for循环结束之后就在内存中释放了。而while循环使用的变量在循环结束后还可以继续使用。
c. 最简单无限循环格式:
a) while(true){ }
b) for( ; ; ){ } 等价于 for( ; true ; ){ }
无限循环存在的原因是不知道循环次数,而是根据某些条件来控制循环。
d. for语句里面中间部分“循环条件”的结果必须是boolean类型的值。否则编译时就会报错。
e. 在for语句中,当表达式多的情况下,表达式之间用逗号隔开。
总结:什么时候使用循环结构?
当要对某些语句执行很多次时,就使用循环结构。
5、其它流程控制语句 --> break(跳出) continue(继续)
break语句:应用范围:选择结构和循环结构。
continue语句:应用于循环结构。
注意:
a. 这两个语句都有自己的作用范围,离开这个作用范围,存在是没有意义的。
b. 这两个语句单独存在时,下面不可以有任何语句,因为执行不到。
c. continue语句是结束本次循环,继续下一次循环。
d. 标号的出现,可以让这两个语句作用于指定的范围(默认情况下,break表示跳出当前所在的循环。而通过给内外循环起名字,就可以用break语句来跳到指定的循环)。
示例:
二、函数
1、概念:函数就是定义在类中的具有特定功能的一段独立小程序。也称为方法。
2、函数的格式:
修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,......)
{
执行语句;
return返回值;
}
- 返回值类型:函数运行后的结果的数据类型。
- 参数类型:是形式参数的数据类型。
- 形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
- 实际参数:传递给形式参数的具体数值。
- renturn:用于结束函数。
- 返回值:该值会返回给调用者。
3、函数的特点:
- 定义函数可以将功能代码进行封装。
- 便于对该功能进行复用。
- 函数只有被调用才能被执行。
- 函数的出现提高了代码的复用性。
- 对于函数没有具体返回值的情况,返回值类型用关键字void表示,那么该函数中的return语句如果在最后一行,则可以省略不写。
注意:
A.函数中只能调用函数,不可以在函数内部定义函数。
B.定义函数时,函数的结果应该返回给调用者,交由调用者处理。
4、如何定义一个函数呢?
两个明确:
a. 明确要定义的功能最后的结果是什么。(明确函数的返回值类型)
b. 明确在定义该功能的过程中,是否需要未知内容参与运算。(明确函数的参数列表,即参数的类型和参数个数)
5、函数的重载
①.概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
②.重载的特点:与返回值类型无关,只看参数列表。
③.重载的好处:方便于阅读,优化了程序设计。