Java基础学习笔记
循环结构
while循环结构
特点:
先判断循环条件,再执行
语法:
while(循环条件){
循环体
更新循环变量
}
例如:打印100遍“好好学习,天天向上!”
int i = 0;
while(i<100){
System.out.println("好好学习,天天向上!");
i++;
}
do-while循环结构
特点:
先执行一遍循环体,再判断
语法:
do{
循环体
更新循环变量
}while(循环条件);
例如:从书本中的某一页开始打印到最后一页
Scanner input = new Scanner(System.in);
System.out.pritln("请输入您需要开始打印的页数:");
int numberPages = input.nextInt();
do{
if(numberPages>100||numberPages<=0){
System.out.println("您输入的页数有误!");
}else{
System.out.println("开打印第"+numberPages+"业");
}
numberPages++;
}while(numberPages>0&&numberPages<=100);
小结
比较while和do-while循环:
1、执行次序不同
2、初始情况不满足循环条件时
(1)while循环一次都不执行
(2)do-while循环不管任何情况都至少执行一次
for循环
语法:
for(参数初始化 ; 循环条件 ; 更新循环变量 ){
循环体
}
**例如:**打印“好好学习!”一百遍
for(int i = 0 ; i < 100 ; i++){
System.out.println("好好学习!");
}
for循环的常见错误
1、变量i没有初始化
2、缺少循环条件,出现死循环
3、循环变量不发生变化,会导致死循环
4、循环中缺少必要的循环控制,会导致死循环
continue语句
**作用:**强制循环提前返回,也就是让循环跳过本次循环的剩余代码,然后开始下一次循环
**例如:**打印1~10中非4的倍数的数
for(int i = 1 ; i<=10 ; i++ ){
if(i%4==0){
continue;
}else{
System.out.println(" "+i);
}
}
多重循环
**定义:**一个循环内包括一个或多个完整的循环
语法:
while(循环条件){
//循环操作
while(循环条件){
//循环操作
}
}
do{
//循环操作
do{
//循环操作
}while(循环条件);
}while(循环条件);
for(初始化参数; 循环条件; 更新参数){
//循环操作
for(初始化参数; 循环条件; 更新参数)[
//循环操作
}
}
while(循环条件){
//循环操作
for(初始化参数; 循环条件; 更新参数){
//循环操作
}
}
例如:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("您想要几行数字:");
int line = input.nextInt();
for (int i = 0; i < line; i++) {
for (int j = line; j > i; j--) {
System.out.print(" ");
}
for (int m = 0; m < 2*i+1; m++) {
System.out.print(i+1);
}
System.out.println();
}
}
注意:
1、各循环可以相互嵌套
2、循环嵌套一般不超过三次
3、外循环变量变化一次,内循环变量变化一遍
Arrays类的使用
1、Arrays.toString(数组名)
意义:将数组转换成一个字符串
int[] arr = new int[]{1,5,8,4,6};
System.out.println(Arrays.toString(arr));
2、Arrays.sort(数组名)
意义:将数组按升序排序
int[] arr = new int[]{1,5,8,4,6};
System.out.println("排序前:");
System.out.println(Arrays.toString(arr));
System.out.println("排序后:");
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
Arrays.equals(数组名1,数组名2)
意义:比较两个数组内的元素是否相同
int[] arr1 = new int[]{1,5,8};
int[] arr2 = new int[]{1,2,3};
int[] arr3 = new int[]{1,5,8};
System.out.println(Arrays.equals(arr1, arr2));
System.out.println(Arrays.equals(arr1, arr3));
Arrays.fill(数组名,值)
意义:将数组里赋值满“值”
int[] arr = new int[5];
Arrays.fill(arr, 99);
System.out.println(Arrays.toString(arr));
Arrays.copyOf(旧数组名,新数组长度);
意义:重新创建一个新数组,并将旧数组中的元素复制过来,且可以定义长度
int[] arr1 = new int[]{1,5,8};
int[] arr2 = Arrays.copyOf(arr1, 10);
System.out.println(Arrays.toString(arr2));
Arrays.binarySearch(数组名,要查找的值)
意义:在数组中找到需要查找的值,并返回查找元素的下标
int[] arr1 = new int[]{1,5,86,52,14,23,48,15};
Arrays.sort(arr1);
int index = Arrays.binarySearch(arr1, 48);
System.out.println("48在第"+(index+1)+"个");
总结
目前为止学习了哪些循环?
while、do-while、for【这些循环都需要有循环条件、循环体、更新循环变量】
不同点:
区别一:三种循环的语法不同
区别二:while循环:先判断,再执行
do-while循环:先执行一次,再判断
for循环;先判断,再执行
区别三:使用情况
循环次数确定的情况使用for循环
**循环次数不确定的情况使用while和do-while循环