Java基础04(数组基础 输入输出 if)

目录

一. 数组

1. 数组的概念

2. 数组的声明

3. 数组的初始化

3.1 动态初始化

3.2 静态初始化

3.3 静态省略初始化

4. 默认值

4.1 整数

4.2 浮点数

4.3 char 

4.4 boolean

4.5 引用类型 

5. 数组中的特殊值:0与null

二. 数组进阶

二. 输出和输入语句

1. 格式化输出

2. 输入

2.1 整数

2.2 浮点数

2.4 字符

三. if 条件分支语句

1. 单分支结构

2. 双分支结构

3. 多分支结构

4. 注意事项


一. 数组

1. 数组的概念

数组的本质上就是让我们能"批量"创建相同类型的变量。

2. 数组的声明

声明一个数组类型的变量,使用数组类型“数据类型[] 变量名”的语法 或者 “数据类型 变量名[](不推荐)

●数据类型:可以是任意的数据类型

●数组名:同变量一致

声明方式:

●方式一:数据类型[] 数组名

	int[] score1;

●方式二:数据类型 数组名[](不推荐)

int score2[];

3. 数组的初始化

初始化操作:(开辟了一片空间用来存放相同类型的数据)

3.1 动态初始化

 方式1:先声明,再创建
数据类型[] 数组名;
数组名=new 数组数据类型[长度];

        int[] score1;
		score1 = new int[10];

方式2:声明和初始化同时操作
数据类型[] 数组名=new 类型[长度]  声明并创建数组

int[] score3 = new int[8];

 ●赋值:数组名[下标]=具体值;

score3[0] = 88;

●取值: 数据类型 变量名 = 数组名[下标];

int fenshu = score3[0];

●获取数组的长度: 数组名.length

		int[] score = { 99, 23, 87, 77 };
		System.out.println(score.length);//4

3.2 静态初始化

方式1:先声明,再创建
数据类型[] 数组名;
数组名= new 数组数据类型[]{数据1,数据2,数据3};

        int[] score;
		score = new int[] { 88, 98, 78, 50, 65 };
		int fenshu = score[0];
		System.out.println(fenshu);//88

方式2:声明的同时并初始化数组

数据类型[] 数组名=new数据类型[]{元素0,元素1,...}

        int[] score1 = new int[] { 99, 32, 81, 78, 67 };
		System.out.println(score1[1]);//32

3.3 静态省略初始化

数据类型[] 数组名={元素0,元素1.....}

        int[] score = { 99, 23, 87, 77 };
		System.out.println(score[0]);

		// 不能拆分成两步
//		int[] score1;
//		score1={99,23,87,77};

4. 默认值

4.1 整数

整数默认值为0

//整数默认值为0
		int[] age =new int[10];
		//打印地址 [I@15db9742 [数据类型@地址
		System.out.println(age);//[I@15db9742
		System.out.println(age[0]);//0

 快速打印数组中的元素 Arrays.toString(数组名)

//快速打印数组中的元素 Arrays.toString(数组名)
		System.out.println(Arrays.toString(age));//[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

4.2 浮点数

浮点数默认值为0.0

//浮点数默认值为0.0
		double[] d = new double[10];
		System.out.println(d);//[D@6d06d69c
		System.out.println(d[0]);//0.0

4.3 char 

char默认值为不可见字符

//char默认值为不可见字符
		char[] ch = new char[10];
		System.out.println("字符数组地址"+ch);//字符数组地址[C@7852e922
		System.out.println("字符数组中的默认元素"+ch[0]);

4.4 boolean

boolean默认值为false

//boolean默认值为false
		boolean[] b = new boolean[10];
		System.out.println(b);//[Z@4e25154f
		System.out.println(b[0]);//false

4.5 引用类型 

引用数据类型默认值null

//引用数据类型默认值null
		String[] strs = new String[5];
		System.out.println(strs);//[Ljava.lang.String;@70dea4e
		System.out.println(strs[0]);//null

5. 数组中的特殊值:0与null

1.针对于数组本身

●数组长度为0,空数组,但是为其分配了内存空间的位置

int[] a = new int[0];
int[] b = new int[]{};

●数组为null,系统没有为其分配其内存空间

//1.针对于数组本身: null 0
		//数组是引用数据类型,引用数据类型的值可以为null
		//未开辟空间
		String[] name = null;
		System.out.println(name);//null

2.数组元素内容

//2.数组的元素为0或者为null
		int[] age = new int[10];
		System.out.println(age[0]);//0
		String[] country = new String[2];
		System.out.println(country[0]);//null

二. 数组进阶

见java基础06


二. 输出和输入语句

●System.out.print();
●System.out.println();(见java基础01)
●System.out.printf(); format 格式化输出

1. 格式化输出

●格式化输出使用System.out.printf(),printf是print format的缩写,表示格式化输出。

●书写格式:通过使用占位符%?,printf()可以把后面的参数变量,格式化成指定格式

//		%? 进来占位
//		%d 格式化输出整数  整数类型
//		%s 格式化输出字符串  任意数据类型
//		%f 格式化输出浮点数  浮点数.2f
//		%e科学计数法输出浮点数  浮点数
//		%x格式化输出十六进制的整数  整数数据类型
		String name = "zkt";
		int age = 22;
		double money = 878212313.123;
		System.out.println("姓名为: "+name+"年龄为: "+"余额:"+money);//姓名为: zkt年龄为: 余额:8.78212313123E8
		System.out.printf("姓名为%s 年龄为%x 余额为%.2f\n",name,age,money);//姓名为zkt 年龄为16 余额为878212313.12
		System.out.printf("姓名为%s 年龄为%d 余额为%e\n",name,age,money);//姓名为zkt 年龄为22 余额为8.782123e+08

一些占位符:

占位符

说明

适合类型

%d

格式化输出整数

整型

%x

格式化输出十六进制整数

整型

%f

格式化输出浮点数

浮点型

%e

格式化输出科学计数法表示的浮点数

浮点型

%s

格式化字符串

任意类型

2. 输入

●next() :

(1)只能读取有效字符,对有效字符出现之前的所有空格,next() 将自动忽略。

(2)从有效字符出现开始,将其后输入的空格键、Tab键和Enter键等视为分隔符或结束符。

●nextLine():

(1)读取Enter键出现之前的所有字符,包括带空格的字符。

(2)只能以Enter键作为结束符

	//创建一个可以从控制台输入内容sc对象
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个字符串1 nextLine()");
		String str1 = sc.nextLine();//从控制台输入字符 ,一行字符
		System.out.println(str1);
		
		System.out.println("请输入一个字符串2 next()");
		String str2 = sc.next();//从控制台输入字符
		System.out.println(str2);

2.1 整数

		Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数");
		int a = sc.nextInt();
		System.out.println(a);

2.2 浮点数

	    Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个浮点数");
		float f = sc.nextFloat();
		System.out.println(f);

 [注]:Scanner会自动转换数据类型,因此不必手动转换。

2.4 字符

        Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个字符");
		char ch = sc.next().charAt(0);
		System.out.println(ch);

三. if 条件分支语句

if语句的基本语法是:根据if的计算结果(true还是false),JVM决定是否执行if语句块(即花括号{}包含的所有语句)。

1. 单分支结构

// 单分支结构
		// if(条件表达式---boolean){
		// 		语句1; ---- 条件表达式的结果为true执行
		// }
		// 注意1:代码块中可以包含多条语句
		// 注意2:if代码块中的语句只有1条的时候{}可以省略
		int score = 61;
		if (score >= 60) {
			System.out.println("及格了");
			System.out.println("获得鸡腿");
		}
		System.out.println("end");

2. 双分支结构

// 双分支
		// if(布尔表达式1){
		// 		条件1成立时,需要做的事情
		// }else{
		// 		条件1不成立时,需要做的事情
		// }
		// else里面如果只有一条语句的时候{}可以省略,不推荐
		int score = 44;
		if (score >= 60) {
			System.out.println("及格了");
			System.out.println("获得鸡腿");
		} else {
			System.out.println("不合格");
			System.out.println("挨打~");
		}

3. 多分支结构

// 多分支
				// if(布尔表达式1){
				// 		条件1成立时,需要做的事情
				// }else if(布尔表达式2){
				// 		条件2成立时,需要做的事情
				// }......else{
				//		不满足上述所有条件做的事情
				//}
				int score = 76;
				if (score >= 80) {
					System.out.println("优秀");
				} else if(score>=70){
					System.out.println("良好");
				} else if(score>=60){
					System.out.println("及格");
				}else {
					System.out.println("不及格");
				}

4. 注意事项

1. if...else 省略{}

●省略{},默认的语句块的内容就是紧跟着的第一条语句,;  来识别第一条语句

●省略{}带来的悬垂问题.此时else和离他最近的if来进行匹配--建议不要省略{}

        int scoreYu = 70;
		int scoreMa = 70;
		if (scoreYu>=60) 
			if (scoreMa>=60) 
				System.out.println("五一休息");
		else 
			System.out.println("不合格");

 2.注意分号问题------分号; 代表结束

//注意分号问题
		int score = 50;
		if (score>=60) ;
		//代码块
		{
			System.out.println("及格");
		}

 3.浮点数不能精确表达

//注意事项,浮点数不能精确表达
		double x =1-9.0/10;
		//误差法
		if ((Math.abs(x-0.1)<0.0001)) {
			System.out.println("Yes");
		}else {
			System.out.println("No");
		}

 4.== 和 equals 区别

如果是字符串要使用equals进行内容比较,常量写在前面
==      基本数据类型     值是否相等
          引用数据类型     地址的值是否相等
equals() 只能用在引用数据类型上,String-比较的是内容是否相等

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯诺依曼转世

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值