循环嵌套
for(条件初始化;条件判断;条件变化){
//代码
for(条件初始化;条件判断;条件变化){
//代码
}
//代码
}
实例:
//九九乘法表
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+"\t");
}
System.out.println();
}
//空心五角形
for(int i=1;i<=5;i++){
for(int j=1;j<=i;j++){
if(i==5 || j==1 || j==i){
System.out.print("* ");
}else{
System.out.print(" ");
}
}
System.out.println();
}
方法:实现具体功能的代码段
使用方法好处: 提高代码的复用性
注意:
1.方法要定义在类中方法外,方法不能嵌套
2.不调用不执行
语法:
有返回值类型的方法
修饰符 返回值类型 方法名([参数列表]){
具有某些功能的代码块;
return 返回值;
}
修饰符:访问权限修饰符,public static默认,具体等到面向对象再说
返回值类型:方法运行后的结果的数据类型-->返回值类型的方法就是要得到这个返回值
引用数据类型|基本数据类型(四类八种)
方法名:方法的名字 ,根据方法名字调用方法
标识符->遵循规则和规范
()->参数列表:方法执行过程当中,是否存在未知的变量,如果有定义再参数列表中
参数列表可以定义,可以不定义
参数可以存在0个,可以存在多个
数据类型 参数名1,数据类型 参数名2,...
return:
1)提前结束方法
2)带出返回值
一个又返回至类型的方法必须存在return,return后面必须有返回值
没有返回值类型的方法
修饰符 void 方法名([参数列表])){
方法体语句;
[return;]
}
void : 没有返回值
return : 提前结束方法
有返回值类型的方法的调用: --执行方法中的代码
1.直接调用: 方法名(); ---没有使用到返回值
2.赋值调用: 返回值类型 变量名= 方法名();
3.输出调用: System.out.println(方法名());
没有返回值的方法:
直接调用,不能赋值调用不能输出调用
参数:
形式参数:形参 :方法定义的时候()中的参数
实际参数:实参 :方法调用的时候()中的参数
形参和实参要一一对应
个数,顺序,数据类型要统一
实例:
public class TextMethod{
public static void main(String[] args){
//获取较大值
getMax(2,3);
//比较两个数是否相同
getSame(3,4);
//打印m行乘法表
table(9);
//num行正三角形,从ch字母开始往后num个字母依次表示
three('f',5);
}
public static void getMax(int a,int b){
if(a<b){
a=b;
}
System.out.println("最大值是"+a);
}
public static void getSame(int a,int b){
if(a==b){
System.out.println("相同");
}
else{
System.out.println("不同");
}
}
public static void table(int m){
for(int i=1;i<=m;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+j*i+" ");
}
System.out.println();
}
}
public static void three(char ch,int num){
for(int i=1;i<=num;i++){
for(int m=1;m<=num-i;m++){
System.out.print("-");
}
for(int j=1;j<=i;j++){
System.out.print(ch+" ");
}
ch++;
System.out.println();
}
}
}
方法的重载
在同一个类中,有多个方法,相同的方法名,不同的参数列表(方法签名不同: 方法名+参数列表 ->方法的唯一标识)
满足方法重载的几个条件:
1.同一个类
2.多个方法,方法名相同
3.参数列表不同
参数的个数不同
参数的数据类型不同
参数顺序不同,前提是数据类型不同
如何决定调用重载方法中的哪个方法?
由实参决定
方法的重载和方法的修饰符无关
方法的重载和方法有没有返回值类型无关
方法的重载和方法返回值类型无关
方法的重载和方法参数名无关
方法的重载是一个类中多态的一种体现
方法是一个类中封装的一种体现
实例
public class TextOverload{
public static void main(String[] args) {
area(4);
area(3,4);
area(2,4,5);
}
public static void area(int w,int h){
System.out.println("矩形的面积是:"+w*h);
}
public static void area(int sup,int sub,int h){
System.out.println("梯形的面积是:"+0.5*(sup+sub)*h);
}
public static void area(int r){
System.out.println("圆的面积是:"+3.14*r*r);
}
}
递归: 自己调用自己
临界条件: 让递归停下来的条件
递归前进段: 到临界条件之前一直自己调用自己
递归后退段: 到达临界条件之后,把结果返回给上一层
实例
public class TextRecursion{
public static void main(String[] args) {
System.out.println(rec(5));
}
public static int rec(int n){
if(n==1){
return 1;
}
return n*rec(n-1);
}
}