小白学习Java第二周

1.三目运算符

语法格式:

数据类型 x = (表达式) ?  value1 :  value2;

执行流程: 来判断表达式 你如果表达式为true 就将value1赋值给x这个变量, 如果为false 就将value2赋值给变量x

2.循环结构

2.1 while循环

语法格式:

while (布尔表达式) {
	语句体
}

执行流程: 当代码执行到while关键字的时候,先去判断布尔表达式,如果布尔表达式为false,就不会执行

2.2do-while循环【几乎不会用到】

语法格式:

do {
	语句体
} while(布尔表达式);

执行流程:首先代码执行到do 然后执行do后面大括号中的语句体,再去判断while后面的布尔表达式

2.3for循环【重点】

语法格式:

for (表达式1(初始化条件); 布尔表达式2(终止条件); 表达式3(循环条件)) {
	语句体
}

执行流程: 首先执行表达式1,再执行表达式2,如果布尔表达式2为true,执行大括号中语句体。然后再执行表达式3,再执行表达式2,再次判断布尔表达式2,直到为false,就不执行语句体。就意味着循环结束

2.4嵌套循环【重点难点】

前提是循环

一个循环里面套另外一个循环。秉承着一个特点: 从外层循环先进入到内层循环,然后 内存循环先结束

然后再回到外层循环,再进入到内层循环,内层循环结束,再会带外层循环

2.4.1案例 九九乘法表

1*1=1

12=2 22=4
13=3 23=6 3*3=9

找规律 几行 9行 第一行 1列 第二行 2列 …
每行的列数和 每行息息相关的

package com.qf.a_sanmu;

public class Demo15 {
public static void main(String[] args) {

	//打印九九乘法表
	//你们自己分析代码的执行的流程!!!
	for (int i = 1; i < 10; i++) {
		for (int j = 1; j <= i; j++) {
							//1*2=2
			System.out.print(j + "*" + i + "=" + i*j + "\t");
		}
		System.out.println();
	}
}

}

2.4.2案例 等腰三角形
   *         第一行  3个空格 1个*
  ***        第二行  2个空格 3 个*
 *****       第三行  1个空格  5个*
*******      第四行  0个空格  7个*
for (int i = 1; i <= 4; i++) {
			//打印空格的
			for (int j = 1; j <= (4 - i); j++) {
				System.out.print(" ");
			}
			//打印*
			for (int j = 1; j <= (2 * i) - 1; j++) {
				System.out.print("*");
			}
			System.out.println();
		}

3.方法【重点】

3.1定义方法的语法格式

无参 无返回值的方法

有参 无返回值的方法

无参有返回值的方法

有参有返回值的方法

3.1.1无参无返回值的方法

语法格式:

public static void 方法的名字 () {
 语句体
}

注意事项:

​ 1.方法的声明必须放在类中,main方法的外面

​ 2.方法声明完以后,一定要记得在main函数中调用

3.1.2有参无返回值的方法

语法格式:

public static void 方法的名字 (数据类型 变量1, 数据类型 变量2,... ) {
 语句体
}
3.1.3无参无返回值的方法

语法格式:

public static  数据类型 方法的名字() {
 
 return 返回的数据;//返回的数据的数据类型一定是声明方法的时候  的数据类型是一致的
}
3.1.4有参有返回值的方法

语法格式:

public  static 数据类型  方法的名字 (数据类型 变量1, 数据类型 变量2,...) {
 	return  返回的数据;
}

4.break和continue

4.1break

语法格式:

break;

只能在swicth-case中或者 循环中 其他地方不能用!!!

4.2continue

语法格式:

continue;

循环中 结束本次循环,进入到下次循环

总结:

break; 用在switch和循环中

continue; 用在循环中

5.数组【重点】

5.1数组如何定义

数组定义:

数据类型[] 数组名字 = 数组的值;

数组详细的语法格式:

第一种:

数据类型[]   数组的名字 = {值1, 值2, 值3,...};
或
数据类型   数组的名字 []= {值1, 值2, 值3,...};

第二种:

数据类型[]   数组的名字 = new  数据类型[容量];
或者
数据类型 数组的名字[] = new  数据类型[容量];

第一种和第二种区别: 第一种即声明了数组又对数组赋值了

第二种只是声明空的数组而已,暂时还没有赋值

第三种:【很少】

语法格式:

数据类型[] 数组的名字  = new 数据类型[]{值1, 值2, 值3,...};

其实是第一种的完全写法

5.2数组如何赋值

通过数组的下标(索引)进行赋值
	int[] arr = new int[3];
	arr[0] = 90;
	arr[1] = 190;
	arr[2] = 89;
	arr[3] = 810;//这个地方会出问题的

5.3对数组如何取值

通过下标来取值

5.4二维数组【了解】

语法格式

数据类型[][]  数组名字 = new 数据类型[容量][荣量];

5.5数组可以作为方法的参数

方法的参数 可以是哪些数据类型? 八大基本数据类型 和String

同理 数组也是可以作为方法的参数的

5.6数组可以作为方法的返回值

方法的返回值可以是八大基本数据类型 和String ,数组也是作为返回值的

6.排序问题

6.1选择排序

原理: 找到最小值的索引 , 然后和第一个数据进行交换。。再除了第一个的剩余的数据的最小值索引

然后和第二个数据进行交换。以此类推即可

int[] = {4,3 ,2,1}

先遍历一遍 找到 最小值的索引 3 然后交换位置 {1, 3, 2, 4}

​ 再遍历一遍(除了第一个数) 找最小值的索引 2 然后交换位置 {1, 2, 3,4}

​ 再遍历一遍(除了第前两个数) 找最小值的索引 {1, 2, 3,4}

package com.qf.test;

import java.util.Arrays;

public class Demo16 {
	public static void main(String[] args) {
		
		//选择排序
		int[] arr = {4, 3, 2, 1};
		for (int i = 0; i < arr.length - 1; i++) {//控制轮数
			int minIndex = i;//最小值的索引的变量
			for (int j = i + 1; j < arr.length; j++) {//遍历按数据比较大小然后取 最小值的索引
				if (arr[minIndex] > arr[j]) {
					minIndex = j;
				}
			}
			//交换位置
			int temp = arr[i];
			arr[i] = arr[minIndex];
			arr[minIndex] = temp;
			
			
		}
		System.out.println(Arrays.toString(arr));
	}
}

6.2冒泡排序

从小到大进行排序

原理: 比较两个相邻的元素的大小,如果左边比右边大,就交换位置。每一对都要比较

int[] arr = {1, 5, 2,3};

第一轮: for

​ {1, 5,2,3} 比较1和5

​ {1,2,5,3}比较5和2

​ {1,2,3,5}比较的是5和3

第二轮:

​ {1,2,3,5} 比较 1和2

​ {1,2,3,5} 比较2 和3

第三轮:

​ {1,2,3,5} 比较1和2

package com.qf.test;

import java.util.Arrays;

public class Demo17 {
	public static void main(String[] args) {
		
		int[] arr = {1,5, 3, 2};
		for (int i = 0; i < arr.length - 1; i++) {//轮数
			for (int j = 0; j < arr.length - i - 1; j++) {
				//两两比较,然后如果左边比右边大的话,就交换位置
				if (arr[j] > arr[j + 1]) {
					//交换位置
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		System.out.println(Arrays.toString(arr));
	}
}

6.3一键排序

Arrays.sort(arr)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值