循环结构:
(1)for循环:
for(初始化条件表达式;判断条件表达式;增量条件表达式) {
循环体;
}
执行流程:
A:首先执行初始化条件表达式
B:接着执行判断条件表达式,根据返回值
true:就继续
false:就结束。
C:执行循环体
D:执行增量条件表达式,回到B继续。
//for循环嵌套的案例:打印九九乘法表
代码体现:
class MultiplicationTable{
public static void main(String[] args) {
//外循环控制行数
for (int x=1; x<=9; x++) {
//内循环控制列数
for (int y=1; y<=x; y++) {
// \t 制表符
System.out.print(x +"*"+ y +"=" + x*y + "\t");
}
//换行
System.out.println();
}
}
}
(2)while循环:
while(条件表达式){
循环体;
}
执行流程:
先判断条件表达式的值。若=true.则执行其后面的语句,然后再次判断条件并反复执行,直到条件不成立为止
注意:
A:while(ture) {...} 无限循环 死循环
B:while循环 后面 不能加;
C:while 循环 不加大括号,循环体 只有一条语
D:while和for可以等价转换。
扩展格式:
初始化条件表达式;
while(判断条件表达式){
循环体;
增量条件表达式;
}
/*案例:
打印出1-100之间能被5整数的数 的个数*/
代码体现:
class WhileTest {
public static void main(String[] args) {
//重新定义num的值为1,用来计数
num = 1;
//记录能被5整除 ,数的个数
int count = 0;
while (num <= 100) {
//判断
if (num%5==0) {
count++;
}
num++;
}
System.out.println("1-100之间能被5整数的数有"+ count +" 个数");
}
}
(3)do...while循环:
do {
循环体;
}while(条件判断);
执行流程:
先执行语句,再判断条件表达式的值,若为true,再执行语句,否则结束循环。
扩展格式:
初始化条件表达式;
do {
循环体;
增量条件表达式;
}while(判断条件表达式);
(4)while和 do..while的区别:
do..while : 执行一次或者多次
while : 执行零次或者多次
(5)用哪种循环?
如果范围明确,用for。
如果范围不明确,用while。
其他语句:
(1)continue和break一般控制循环的走向。
(2)区别:
continue:结束本次循环,继续下一次循环。
break:结束当前循环。
(3)多层循环的推出:
带标签的用法:
mm:for(;;) {
nn:for(;;){
if(){
break mm;
}
}
}
函数:
定义:函数就是定义在类中的完成特定功能的一段独立小程序。
函数也称为方法。
函数的格式:
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,…)
{
执行语句;
return 返回值;
}
修饰符: public static
返回值类型: 返回值的数据类型 int \ char \ double \ boolean
函数名: 为了方便函数的使用,定义函数名
参数类型:int \ char \ double \ boolean等
形式参数:接收实际参数的变量
实际参数:实际参与运算的变量
返回值 : 就是函数执行后的返回结果
return : 将 返回值 带回来,必须使用return 带回 返回值
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该函数运算的结果,该结果会返回给调用者。
注意:
1、函数与函数之间是平级的,函数内 不能嵌套函数
2、函数定义好后,如果没有调用,它不会自动执行
3、返回值有明确数据类型,函数调用的方式
A: 赋值操作 int result = sum();
B: 直接使用 sum();通常没有实际意义
C: 输出操作 System.out.println( sum() );//sum()结果是int类型, 可以直接打印
D: 返回值的数据类为 void
只有一种:直接使用 sum();
4、没有具体返回值的时候,在java中 提供一个关键字
void: 空的
return ; 可以省略 ,JVM在执行函数的时候 会自动的加上 return ;
5、在函数之间,变量的名字相同时没有冲突的
函数的重载(overload):
重载的概念:
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
函数的重载满足:
1、函数的名字 相同
2、函数的重载 与 返回值类型 没有关系
3、需要参数列表中 :
参数个数不同
参数数据类型不同
参数数据类型的顺序不同
重载的特点:
与返回值类型无关,只看参数列表。
重载的好处:
方便于阅读,优化了程序设计
代码体现:
class FunctionDemo{
public static void main(String[] args) {
//打印两个整数和
System.out.println("sum(int a, int b)" + sum(10,20));
//打印三个数之和
System.out.println("sum(int a, int b, int c)" + sum(10,20,30));
//打印两个小数的和
System.out.println( "sum(double a, double b)="+ sum(3.3, 5.4) );
}
//两个数相加
public static int sum(int a, int b){
return a+b;
}
//两个double小数相加
public static double sum(double a, double b){
return a + b;
}
//三个数相加
public static int sum(int a, int b, int c){
return a+b+c;
}
}