您的位置:首页 > 编程语言 > Java开发

JAVASE学习——————Day09

2020-05-05 12:30 891 查看

Day09————嵌套循环和方法

入门
/*				L   *
*****       1   5
*****       2   5
*****       3   5
*****       4   5
*****       5   5
class Demo1 {
public static void main(String[] args) {
System.out.println("********");
System.out.println("********");
System.out.println("********");
System.out.println("********");
System.out.println("********");
System.out.println("********");
System.out.println("********");
System.out.println("********");

System.out.println("----------------------------------------");

// 需要展示5行数据
for (int i = 1; i <= 8; i++) {
System.out.println("********");
}

System.out.println("----------------------------------------");

// 外层循环控制总行数
int line = 20;
for (int i = 1; i <= line; i++) {
// 星星个数 = 最大行号
for (int j = 1; j <= line; j++) {
System.out.print("*");
}
System.out.println();
}

}
}
*/

示例2

/*				L  *
*           1  1
**          2  2
***         3  3
****        4  4
*****       5  5
******      6  6
*/
class Demo2 {
public static void main(String[] args) {
int line = 30;
// 外层循环控制总计6行
for (int i = 1; i <= line; i++) {
// 每一行星星个数 == 行号
for (int j = 1; j <= i; j++) {
System.out.print('*');
}

System.out.println();
}
}
}

示例三

/*				L  _  字符 个数
A         1  6   A   1
BBB        2  5   B   3
CCCCC       3  4   C   5
DDDDDDD      4  3   D   7
EEEEEEEEE     5  2   E   9
FFFFFFFFFFF    6  1   F   11
GGGGGGGGGGGGG   7  0   G   13
_个数 = 总行数 - 当前行号;
字符个数 = 2 * 当前行号 - 1;
字符本身的递增过程
*/
class Demo5 {
public static void main(String[] args) {
// 定义一个字符变量,变量初始化为字符'A'
char ch = 'A';

// 外层循环控制总行数,总行数7行
for (int i = 1; i <= 26; i++) {
// 内存循环1: 控制空格的个数
for (int j = 1; j <= 26 - i; j++) {
System.out.print(' ');
}

// 内存循环2: 控制字符个数
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print(ch);
}

System.out.println();

// 字符变量需要在每一次展会完毕之后,进行自增
ch += 1;
}
}
}

示例四

/*				L  _  *
*			1  5  1
***			2  4  3
*****		3  3  5
*******		4  2  7
*********		5  1  9
***********		6  0  11

*********      1  1  9
*******       2  2  7
*****       	3  3  5
***			4  4  3
* 			5  5  1

下半部分 第一行星星个数为9,如何计算得来
凑!!!
总行数5
5 * 2 - (i * 2 - 1) --> 5 * 2 - i * 2 + 1 => (5 - i) * 2 + 1
(5 - i) * 2 + 1
10 - 1 = 9;
10 - 3 = 7;
10 - 5 = 5;
*/
class Demo6 {
public static void main(String[] args) {
// 菱形总行数 ,一旦是单数
int line = 25;

// 图形一分为二,上半部分为line / 2 + 1行
// 外层循环控制总行数,这里是line / 2 + 1行
for (int i = 1; i <= line / 2 + 1; i++) {
// 内层循环1:控制空格的个数
for (int j = 1; j <= line / 2 + 1 - i; j++) {
System.out.print(' ');
}

// 内层循环2:控制星星的个数 星星 = 2 * 当前行号 - 1;
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print('*');
}

System.out.println();
}

// 下半部分一共line / 2行
// 外层循环控制总行数,总计line / 2行
for (int i = 1; i <= line / 2; i++) {
// 内层循环1: 展示空格个数
for (int j = 1; j <= i; j++) {
System.out.print(' ');
}

// 内层循环2: 控制星星的个数
for (int k = 1; k <= (line / 2 - i) * 2 + 1; k++) {
System.out.print('*');
}

System.out.println();
}
}
}
方法
为什么使用方法

生活中使用的工具,螺丝刀,锤子,扳手。
1. 复用,重复使用
2. 提高效率

开发中,存在代码需要复用的情况。虽然循环可以解决一部分代码复用的问题,但是无法从根本上解决需要多处使用的情况。
这里需要用到方法
代码中使用循环解决复用的问题
1. 代码冗余!!!
2. 维护性极差!!!
3. 阅读性极差!!!
方法的书写格式

// main方法 Java中主方法格式
public static void main(String[] args) {

}

/*
public static : 不要问!!!固定格式

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

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

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

{}: 方法体

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

public static returnType methodName(Arguments) {
Method Body
}

*/
示例一

需求:
使用方法展示一个Hello World

方法分析:
固定格式: public static 不要问
返回值类型:
这里不需要返回值类型,采用void
方法名:
printHelloWorld
见名知意,动宾结构,小驼峰命名法
形式参数列表:
当前方法没有任何的外来数据需求,不需要参数
()
【方法声明】
public static void printHelloWorld()
自定义方法调用过程

记住一句话
方法是条狗,哪里需要哪里吼

1. 在需要调用方法的位置,使用方法名调用方法
2. 方法和变量的最大区别
方法后面一定有小括号!!!
/* 自定义实现第一个方法 */
class Method1 {
public static void main(String[] args) {
// 方法是条狗,哪里需要哪里吼
// 调用方法一定要有小括号,如果没有参数,小括号内没有内容
printHelloWorld();
printHelloWorld();
printHelloWorld();
printHelloWorld();
printHelloWorld();
}

/**
* 展示打印到控制台一个Hello World
*/
public static void printHelloWorld() {
// 方法体
System.out.println("烤羊排~~");
}
}
自定义方法总结
  1. 目前我们有且只考虑在main方法中来调用其他方法
  2. main方法是目前我们现在程序的唯一入门,如果想要哪一个代码执行,哪一个方法被调用,都需要经过main方法完成
  3. 方法书写一定要注意代码格式
  4. 方法位置在class以内,其他方法之外
示例五
/*				L  _  字符 个数
A         1  6   A   1
BBB        2  5   B   3
CCCCC       3  4   C   5
DDDDDDD      4  3   D   7
EEEEEEEEE     5  2   E   9
FFFFFFFFFFF    6  1   F   11
GGGGGGGGGGGGG   7  0   G   13
_个数 = 总行数 - 当前行号;
字符个数 = 2 * 当前行号 - 1;
字符本身的递增过程

这里需要一个方法,封装这样的实现效果

方法分析:
固定格式:
public static 不要问
返回值类型:
这里就是展示一个图形,不需要返回值
void
方法名:
printPic 展示图像
形式参数列表:
图形展示过程中最主要的就是有多少行数据
需要给用户一个控制方法的途径
(int line)
【方法声明】
public static void printPic(int line)
*/
class Method4 {
public static void main(String[] args) {
printPic(42);
}

/**
* 展示一个等腰梯形字符图形
*
* @param line 控制图形展示的行数
*/
public static void printPic(int line) {
// 定义一个字符变量,变量初始化为字符'A'
char ch = 'A';

// 外层循环控制总行数,总行数7行
for (int i = 1; i <= line; i++) {
// 内存循环1: 控制空格的个数
for (int j = 1; j <= line - i; j++) {
System.out.print(' ');
}

// 内存循环2: 控制字符个数
for (int k = 1; k <= 2 * i - 1; k++) {
System.out.print(ch);
}

System.out.println();

// 字符变量需要在每一次展会完毕之后,进行自增
ch += 1;
}
}
}
2.6 形式参数和实际参数是什么?

形式参数:
我要做菜
烤羊排:
材料列表:
羊排,孜然粉,烧烤料,辣椒粉,葱姜蒜,洋葱
以上就是做烤羊排需要的材料!!!【形式参数列表】

public static void printIntNumber(int num)
int num 只是告诉调用者,这里需要的是一个int类型数据

实际参数:
从菜市场,JD上采购羊排
买了2斤羊排
孜然粉 100G
烧烤料 100G
辣椒粉 50G
葱一根
姜 50G
蒜 5-6瓣
洋葱一个
这里是实实在在,采购回来的物料,【实际参数】

双双的小猪猪 原创文章 17获赞 0访问量 237 关注 私信
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: