【笔记】Java基础 02——流程与数组

九、流程

  • 顺序结构

    写在前面的先执行,写在后面的后执行。

  • 选择结构

  1. if
if(布尔表达式){
    
    
	语句体
}
  1. if-else
if(布尔表达式){
    
    
	语句体A
}else{
    
    
	语句体B
}
package day03_Process;
/*
 * 【题目描述】输入一个数,判断是奇数还是偶数
 */
import java.util.Scanner;

public class Demo00 {
    
    

    public static void main(String[] args){
    
    
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        
        if(num % 2 == 0){
    
    
            System.out.println("偶数");
        }else{
    
    
            System.out.println("奇数");
        }
    }
}

  1. if-else if-else
if(条件判断1){
    
    
	语句体1
}else if(条件判断2){
    
    
	语句体2
}
...
else if(条件判断n){
    
    
	语句体n
}else{
    
    
	语句体n+1
}
package day03_Process;
/*
 * 【题目描述】考试成绩划分
 */
import java.util.Scanner;

public class Demo01 {
    
    

    public static void main(String[] args){
    
    
        Scanner sc = new Scanner(System.in);
        
        System.out.println("请输入考试成绩:");
        int score = sc.nextInt();
        
        if(score >= 90 && score <= 100){
    
    
            System.out.println("优秀");
        }else if(score >= 80 && score < 90){
    
    
            System.out.println("良好");
        }else if(score >= 70 && score < 80){
    
    
            System.out.println("中等");
        }else if(score >= 60 && score < 70){
    
    
            System.out.println("及格");
        }else if(score >= 0 && score < 60){
    
    
            System.out.println("不及格");
        }else{
    
     //边界情况,负数或超过100
            System.out.println("无效数字!");
        }
    }
}

  • 循环结构

  1. for循环
for(1初始化语句;2条件判断;4步进语句){
    
    
	3循环体
} // 1234-234-234-...-直到2不满足为止
package day03_Process;
/*
 * 【题目描述】求出1-100之间的偶数和
 */

public class Demo02 {
    
    

    public static void main(String[] args){
    
    
        int sum = 0;
        
        for(int i = 1; i <= 100; i++){
    
    
            if(i % 2 == 0){
    
    
                sum += i;
            } //判断是否是偶数,是则累加
        } //逐个增加
        System.out.println("偶数和为:" + sum);
    }
}

  1. for…each语句
//遍历一个数组或集合中的所有元素
int a[] = new int[100];
for(int e:a) //对于数组a中的每个整数e
  1. while循环
//一般格式
while(1条件判断){
    
    
	2循环体
} //12-12-...-直到1不满足

//扩展格式
1初始化语句
while(2条件判断){
    
    
	3循环体
	4步进语句
} // 1234-234-234-...-直到2不满足为止
  1. do while循环
do{
    
    
	1循环体
}while(2条件判断);
//先执行一次循环体,再进行判断,1-21-21-...-直到2不满足
  1. switch语句
//基于表达式的值使程序执行不同的语句序列
switch(条件表达式){
    
    
    case value 1:
        语句序列 breakcase value 2:
        语句序列 break...
    case value n:
        语句序列 breakdefault:
        默认语句序列
}
  1. 永真循环(死循环)
//标准格式
while(ture){
    
    
	循环体
}

//扩展格式
for(;;){
    
    
    循环体
}
  • 跳转控制语句

  1. break
break; //使整个循环立刻结束
break label; //标签(label)是任何合法的java标识符后跟一个冒号(:),用于从嵌套很深的循环中退出
  1. continue
    只是跳过当前次,立刻开始下一次循环
package day03_Process;

public class Demo03 {
    
    
    
    public static void main(String[] args){
    
    
        for(int i = 1; i <= 10;i++){
    
    
            if(i == 4){
    
    
                System.out.println("没有第4层楼");
                continue; //结束此次for循环
            }
            System.out.println("这是第" + i + "层楼");
        } //for
    }
}
  1. return 语句
    用来明确地从一个方法返回
return 返回值; // 若return语句未出现在子方法中,则子方法的最后一条语句执行后自动返回到主方法

十、数组

  • 概述

    是一种引用类型,存放多个类型统一的数据。

  • 定义

	数据类型[] 数组名称;
    数据类型 数组名称[];  // 不推荐
  • 初始化

在内存中开辟数组空间,并赋予默认值

  1. 动态初始化: 指定数组 长度
  1. 一个步骤:
    数据类型[] 数组名称 = new 数据类型[数据长度];
  1. 两个步骤:
    数据类型[] 数组名称;
    数组名称 = new 数据类型[数组长度];
  1. 默认赋值
    整数 - 全是0
    浮点数 - 全是0.0
    字符 - ‘\u0000’(Unicode写法)
    布尔值 - false
    字符串、其他引用类型 - null
package day04_Array;

public class Demo01_ArrayVisit {
    
    

	public static void main(String[] args) {
    
    
		//动态初始化
		int[] arr1 = new int[3];
		
		double[] arr2;
		arr2 = new double[3];
		
		String[] arr3 = new String[3];
		
		//访问数组地址值
		System.out.println(arr1); //数组16进制的地址值/哈希值:[I@123a439b
		
		//访问数组中的具体值:格式 数组名称[索引]
		System.out.println(arr1[0]);
		System.out.println(arr1[1]);
		System.out.println(arr1[2]);
		
		System.out.println(arr2[0]);
		System.out.println(arr2[1]);
		System.out.println(arr2[2]);
		
		System.out.println(arr3[0]);
		System.out.println(arr3[1]);
		System.out.println(arr3[2]);
		
	}
}

  1. 静态初始化: 指定数组 内容
  1. 一个步骤:
    数据类型[] 数组名称 = new 数据类型[] {元素1,元素2,…,元素n}
  1. 两个步骤:
    数据类型[] 数组名称;
    数组名称 = new 数据类型[] {元素1,元素2,…,元素n};
  1. 简便格式:只能一次到位
    数据类型[] 数组名称 = {元素1,元素2,…,元素n};
package day04_Array;

public class Demo02_ArrayStatic {
    
    

	public static void main(String[] args) {
    
    
		//静态初始化
		int[] arr1 = new int[] {
    
    1,2,3};
		
		int[] arr2;
		arr2 = new int[] {
    
    4,5,6};
		
		int[] arr3 = {
    
    7,8,9};
		
		System.out.println(arr1[0]);
		System.out.println(arr1[1]);
		System.out.println(arr1[2]);
		
		System.out.println("=====================");
		
		System.out.println(arr2[0]);
		System.out.println(arr2[1]);
		System.out.println(arr2[2]);
		
		System.out.println("=====================");
		
		System.out.println(arr3[0]);
		System.out.println(arr3[1]);
		System.out.println(arr3[2]);
	}
}

  • 获取数组长度

package day04_Array;
/*
 * 【题目描述】获取数组长度
 */
public class Demo03_ArrayLength {
    
    

	public static void main(String[] args) {
    
    
		//静态初始化
		int[] arr1 = {
    
    1,1,1,1,1,1,11,1,1,1,11,1};
		System.out.println(arr1.length);
		
		//动态初始化
		int[] arr2 = new int[56];
		System.out.println(arr2.length);
	}
}

  • 数组索引越界异常

如果访问的数组元素索引并不存在,那么将会发生异常:
java.lang.ArrayIndexOutOfBoundsException。
注意,数组元素索引编号从0开始,一直到“数组长度-1”为止。

  • Java内存分配

  • 栈 (Stack): 存放局部变量

  • 堆(Heap): 凡是new出来的东西,都在堆当中。堆中数据有默认值规则:

    • 如果是整数,默认为0
    • 浮点数 - 全是0.0
    • 字符 - ‘\u0000’(Unicode写法)
    • 布尔值 - false
    • 字符串、其他引用类型 - null
  • 方法区(Method Area): 存放与.class相关的信息

  • 本地方法区(Native Method Area): 与os有关

  • 寄存器(pc Register): 与cpu相关,性能极高

  • 数组中的内存分配

在这里插入图片描述

  • 数组练习

package day04_Array;
/*
 * 【题目描述】求数组元素最值
 */
public class Demo04_ArraryMaxAndMin {
    
    

	public static void main(String[] args) {
    
    
		//求数组中的最大值
		//英雄相聚
		int[] arr1 = {
    
    1,56,45,98,65,100,892,98};
		//设擂台,第一个人上擂等挑战
		int max = arr1[0];
		//两两相比
		for(int i = 1; i < arr1.length; i++) {
    
    
			//比试
			if(arr1[i] > max) {
    
    
				//败者下台,胜者还在台上	
				max = arr1[i];
			}

		}
		
		//求数组的最小值
		//英雄相聚
		int[] arr2 = {
    
    1,56,45,98,65,100,892,98};
		//设擂台,第一个人上擂等挑战
		int min = arr2[0];
		//两两相比
		for(int i = 1; i < arr2.length; i++) {
    
    
			//比试
			if(arr1[i] < max) {
    
    	
				max = arr2[i];
			}

		}
		System.out.println("max值:" + max + "  min值:" + min);
	}
}

package day04_Array;
/*
 * 【题目描述】求数组元素和,设置一个长度为6的数组,存入任意6个数字,然后求出所有元素的总和。
 */
public class Demo05_ArraySum {
    
    

	public static void main(String[] args) {
    
    
		int[] arr1 = {
    
    54,89,56,21,64,79};
		
		int sum = 0;
		
		for(int i = 0; i < arr1.length; i++) {
    
    
			sum += arr1[0];
		}
		System.out.println("数组和为:" + sum);
	}
}

猜你喜欢

转载自blog.csdn.net/qq_55269149/article/details/129287857