嵌套循环与方法学习小结

嵌套循环与方法学习小结
嵌套循环练习:

1、使用嵌套循环打印输出下列图案

思路:该图案共11行,将图案拆分为上下两个部分,

上部分:

​ 上部分共6行,故最外循环条件为小于等于6;由于每行字符自增1,故循环打印输出字符后,字符自增1。

​ 内层循环打印输出空格:由下每行空格数可知该层循环条件为小于等于6-i;

​ 内层循环打印输出字符:由下每行字符数可知该层循环条件为小于等于2*i-1;

​ 当该部分循环完成后,此时字符为该部分最后一行输出字符的下一字符,在本题中为G。

下部分:

​ 下部分共5行,故最外循环条件为小于等于5;由于本题中本行应打印 E,然后上部分打印输出后此时字符为G,故字符应先减2,然后每行字符自减1,故循环打印输出字符后,字符自减1。

​ 内层循环打印输出空格:由下每行空格数可知该层循环条件为小于等于i;

​ 内层循环打印输出字符:由下每行字符数可知该层循环条件为小于等于(5-i)*2+1.

/*                 L    _    ch
     A             1    5    1
    BBB            2    4    3
   CCCCC           3    3    5
  DDDDDDD          4    2    7
 EEEEEEEEE         5    1    9
FFFFFFFFFFF        6    0    11
__________________________________
 EEEEEEEEE         1    1    9
  DDDDDDD          2    2    7
   CCCCC           3    3    5
    BBB            4    4    3
     A             5    5    1
 */
public class Demo1 {
    public static void main(String[] args) {
        int line = 18;
        int row = line / 2 + 1;
        char ch = 'A';

        //菱形上半部分
        for (int i = 1; i <= row ; i++) {
            for (int j = 1; j <= row - i; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print(ch);
            }
            ch++;
            System.out.println();
        }

        ch -= 2;
        //菱形下半部分
        for (int i = 1; i <= row - 1; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print( " ");
            }
            for (int k = 1; k <= (row - i - 1) * 2 + 1; k++) {
                System.out.print(ch);
            }
            ch--;
            System.out.println();
        }
    }
}

2、使用嵌套循环打印输出下列图案

思路:与1相似,通过if else结构判断对左右部分分别进行字符自增自减操作即可。

/*             左   L    _    ch        ch   右
     |A             1    5    1    0    A       1
    A|BA            2    4    3    1    B       2
   AB|CBA           3    3    5    2    C       3
  ABC|DCBA          4    2    7    3    D       4
 ABCD|EDCBA         5    1    9    4    E       5
ABCDE|FEDCBA        6    0    11   5    F       6
____________________________________________________
 ABCD|EDCBA         1    1    9    4   E        5
  ABC|DCBA          2    2    7    3   D        4
   AB|CBA           3    3    5    2   C        3
    A|BA            4    4    3    1   B        2
     |A             5    5    1    0   A       `1
 */
public class Demo2 {
    public static void main(String[] args) {
        int line = 11;
        int row = line / 2 + 1;

        for (int i = 1; i <= row; i++) {
            for (int j = 1; j <= row - i; j++) {
                System.out.print(" ");
            }
            char ch = 'A';
            for (int k = 1; k <= 2 * i - 1; k++) {
                System.out.print(ch);
                if (k < i) {
                    ch++;
                } else {
                    ch--;
                }
            }
            System.out.println();
        }

        for (int i = 1; i <= row - 1; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(" ");
            }
            char ch = 'A';
            for (int k = 1; k <= (row - i - 1) * 2 +1; k++ ){
                System.out.print(ch);
                if ( k < row - i) {
                    ch++;
                } else {
                    ch--;
                }
            }
            System.out.println();
        }
    }
}

方法

作用:1、复用。 2、提高效率

格式:以main方法为例:
public static void main(String[] args) {

}

/*
public static : 暂时不学习,暂认为固定格式

void: 返回值类型 void 表示当前方法没有返回值
返回值类型是当前方法运行完成之后对方法外的一个返回数据

main: 方法名,方法名是一个名字,要求符合命名规范
小驼峰命名法,见名知意,动宾结构

(形式参数列表): 当前方法运行所需的外来数据,这里需要告知调用者数据类型

{}: 方法体

方法格式:
public static 返回值类型 方法名(形式参数列表) {
方法体
}

eg:

/*
需求:
	 打印n次用户自定义的字符串
		
方法分析:
	固定格式:public static
	返回值类型:这里打印输出n次用户自定义的字符串,无需返回值
	方法名:printCustomMessage
	形式参数列表:需要用户输入一个正整数,与一个字符串
				  (int num,String str)
【方法声明】
	public static void printCustomMessage(int num,String str)
*/
class Demo1 {
	public static void main(String[] args) {
		printCustomMessage(10,"学习");
	}
/**
*形式参数:	num:int型变量,定义循环次数
*			str: String类型变量,定义打印输出的字符串
*作用:	自定义循环次数与输出信息,
*		按照num定义的循环次数,循环打印num次自定义的字符串。
**/
	
	public static void printCustomMessage(int num,String str) {
		for (int i = 0; i <= num; i++) {
			System.out.println(str);
		}
	}
}

形式参数与实际参数

形式参数:eg:

public static void printNum(int num)

num即为一个形式参数,可理解为一个记号,系统并未对其分配内存空间。

实际参数:eg:

int num = 1;

num即为一个实际参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值