IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java学习笔记 -> 正文阅读

[Java知识库]Java学习笔记


前言

Java基础语法㈠学习通道


一、运算符

①运算符和表达式

运算符:对常量或者变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。不同运算符连接的表达式体现的是不同类型的表达式。

//举例说明:
int a = 10; 
int b = 20; 
int c = a + b;
//+:是运算符,并且是算术运算符。
//a + b:是表达式,由于+是算术运算符,所以这个表达式叫算术表达式。

②算术运算符

在这里插入图片描述

注意:
①/和%的区别:两个数据做除法,/取结果的商,%取结果的余数。
②整数操作只能得到整数,要想得到小数,必须有浮点数参与运算。

/*
	算术运算符
*/
public class OperatorDemo01 {
	public static void main(String[] args) {
		//定义两个变量
		int a = 6;
		int b = 4;
		
		System.out.println(a + b);
		System.out.println(a - b);
		System.out.println(a * b);
		System.out.println(a / b);
		System.out.println(a % b);
		//除法得到的是商,取余得到是余数
		
		//整数相除只能得到整数,要想得到小数,必须有浮点数的参与
		System.out.println(6.0 / 4);
	}
}

③字符"+"操作

在这里插入图片描述
在这里插入图片描述

/*
	字符的"+"操作
*/
public class OperatorDemo02 {
	public static void main(String[] args) {
		//定义两个变量
		int i = 10;
		char c = 'A'; //'A'的值是65
		c = 'a'; //'a'的值是97
		c = '0'; //'0'的值是48
		System.out.println(i + c);
		
		//char ch = i + c;
		//char类型会被自动提升为int类型
		int j = i + c;
		System.out.println(j);
		
		//int k = 10 + 13.14;
		double d = 10 + 13.14;
		System.out.println("it" + "heima");
		System.out.println("itheima" + 666);
		System.out.println(666 + "itheima");
		
		System.out.println("黑马" + 6 + 66);
		System.out.println(1 + 99 + "年黑马");
	}
}

在这里插入图片描述

④ 赋值运算符

在这里插入图片描述

/*	
	赋值运算符
*/
public class OperatorDemo {
	public static void main(String[] args) {
		//把10赋值给int类型的变量i
		int i = 10;
		System.out.println("i:" + i);
		
		// += 把左边和右边的数据做加法操作,结果赋值给左边
		i += 20;
		//i = i + 20;
		System.out.println("i:" + i);
		
		//注意:扩展的赋值运算符底层隐含了强制类型转换
		short s = 10;
		s += 20;
		//s = (short)(s + 20);
		System.out.println("s:" + s);
	}
}

注意:
扩展的赋值运算符隐含了强制类型转换。

short s = 10; 
s = s + 10; // 此行代码报错,因为运算中s提升为int类型,运算结果int赋值给short可能损失精度 
s += 10; // 此行代码没有问题,隐含了强制类型转换,相当于 s = (short) (s + 10);

⑤自增自减运算符

在这里插入图片描述

/*	
	自增自减运算符
*/
public class OperatorDemo {
	public static void main(String[] args) {
		//定义变量
		int i = 10;
		System.out.println("i:" + i);
		
		//单独使用
		//i++;
		//++i;
		//System.out.println("i:" + i);
		
		//参与操作使用
		//int j = i++;
		int j = ++i;
		System.out.println("i:" + i);
		System.out.println("j:" + j);
		int x = 10; 
		int y = x++; // 赋值运算,++在后边,所以是使用x原来的值赋值给y,x本身自增1 
		System.out.println("x:" + x + ", y:" + y); // x:11,y:10 
		int m = 10; int n = ++m; // 赋值运算,++在前边,所以是使用m自增后的值赋值给n,m本身自增1 
		System.out.println("m:" + m + ", m:" + m); // m:11,m:11
	}
}

在这里插入图片描述

⑥关系运算符

在这里插入图片描述

/*
	关系运算符的结果都是boolean类型,要么是true,要么是false。
*/
public class OperatorDemo {
	public static void main(String[] args) {
		//定义变量
		int i = 10;
		int j = 20;
		int k = 10;
		
		//==
		System.out.println(i == j);
		System.out.println(i == k);
		System.out.println("--------");
		
		//!=
		System.out.println(i != j);
		System.out.println(i != k);
		System.out.println("--------");

		//>
		System.out.println(i > j);
		System.out.println(i > k);
		System.out.println("--------");
		
		//>=
		System.out.println(i >= j);
		System.out.println(i >= k);
		System.out.println("--------");
		
		//不小心把==写成了=
		//把j的值赋值给了i,然后输出i的值
		System.out.println(i = j);
	}
}

⑦逻辑运算符

逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断的结果是 true 或 false。

在这里插入图片描述

/*
	逻辑运算符
*/
public class OperatorDemo01 {
	public static void main(String[] args) {
		//定义变量
		int i = 10;
		int j = 20;
		int k = 30;
		
		//& 有false则false
		System.out.println((i > j) & (i > k)); //false & false
		System.out.println((i < j) & (i > k)); //true & false
		System.out.println((i > j) & (i < k)); //false & true
		System.out.println((i < j) & (i < k)); //true & true
		System.out.println("--------");
		
		//| 有true则true
		System.out.println((i > j) | (i > k)); //false | false
		System.out.println((i < j) | (i > k)); //true | false
		System.out.println((i > j) | (i < k)); //false | true
		System.out.println((i < j) | (i < k)); //true | true
		System.out.println("--------");
		
		//^ 相同为false,不同为true
		System.out.println((i > j) ^ (i > k)); //false ^ false
		System.out.println((i < j) ^ (i > k)); //true ^ false
		System.out.println((i > j) ^ (i < k)); //false ^ true
		System.out.println((i < j) ^ (i < k)); //true ^ true
		System.out.println("--------");
		
		//!
		System.out.println((i > j)); //false
		System.out.println(!(i > j)); //!false
		System.out.println(!!(i > j)); //!!false
		System.out.println(!!!(i > j)); //!!!false
	}
}

短路逻辑运算符:

在这里插入图片描述

/*
	短路逻辑运算符
*/
public class OperatorDemo02 {
	public static void main(String[] args) {
		//定义变量
		int i = 10;
		int j = 20;
		int k = 30;
		
		//&& 有false则false
		System.out.println((i > j) && (i > k)); //false && false
		System.out.println((i < j) && (i > k)); //true && false
		System.out.println((i > j) && (i < k)); //false && true
		System.out.println((i < j) && (i < k)); //true && true
		System.out.println("--------");
		
		//|| 有true则true
		System.out.println((i > j) || (i > k)); //false || false
		System.out.println((i < j) || (i > k)); //true || false
		System.out.println((i > j) || (i < k)); //false || true
		System.out.println((i < j) || (i < k)); //true || true
		System.out.println("--------");
		
		//&&和&
		//System.out.println((i++ > 100) & (j++ > 100)); //false & false
		System.out.println((i++ > 100) && (j++ > 100)); //false && false
		System.out.println("i:" + i);
		System.out.println("j:" + j);	
	}
}

⑧三元运算符

三元运算符语法格式:
关系表达式 ? 表达式1 : 表达式2;
解释:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。其逻辑为:如果条件表达式成立或者满足则执行表达式1,否则执行第二个。

int a = 10; 
int b = 20; 
int c = a > b ? a : b; // 判断 a>b 是否为真,如果为真取a的值,如果为假,取b的值

需求:动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,请用程序实现判断两只老虎的体重是否相同。

/*
	两只老虎
	
	需求:
		动物园里有两只老虎,已知两只老虎的体重分别为180kg、200kg,
		请用程序实现判断两只老虎的体重是否相同。
*/
public class OperatorTest01 {
	public static void main(String[] args) {
		//1:定义两个变量用于保存老虎的体重,单位为kg,这里仅仅体现数值即可。
		int weight1 = 180;
		int weight2 = 200;
		
		//2:用三元运算符实现老虎体重的判断,体重相同,返回true,否则,返回false。
		boolean b = weight1 == weight2 ? true : false;
		
		//3:输出结果
		System.out.println("b:" + b);
	}
}

需求:一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,请用程序实现获取这三个和尚的最高身高。

/*
	三个和尚
	
	需求:
		一座寺庙里住着三个和尚,已知他们的身高分别为150cm、210cm、165cm,
		请用程序实现获取这三个和尚的最高身高。
*/
public class OperatorTest02 {
	public static void main(String[] args) {
		//1:定义三个变量用于保存和尚的身高,单位为cm,这里仅仅体现数值即可。
		int height1 = 150;
		int height2 = 210;
		int height3 = 165;
		
		//2:用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。
		int tempHeight = height1 > height2 ? height1 : height2;
		
		//3:用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。
		int maxHeight = tempHeight > height3 ? tempHeight : height3;
		
		//4:输出结果
		System.out.println("maxHeight:" + maxHeight);
	}
}

二、数据输入

我们可以通过 Scanner 类来获取用户的输入。

在这里插入图片描述

/*
	数据输入:
		导包:
			import java.util.Scanner;
		创建对象:
			Scanner sc = new Scanner(System.in);
		接收数据:
			int x = sc.nextInt();
*/
import java.util.Scanner;

public class ScannerDemo {
	public static void main(String[] args) {
		//创建对象
		Scanner sc = new Scanner(System.in);
		
		//接收数据
		int x = sc.nextInt();
		
		//输出数据
		System.out.println("x:" + x);
	}
}

需求:一座寺庙里住着三个和尚,他们的身高必须经过测量得出,请用程序实现获取这三个和尚的最高身高。

/*
	三个和尚
	
	需求:
		一座寺庙里住着三个和尚,他们的身高必须经过测量得出,请用程序实现获取这三个和尚的最高身高。
*/
import java.util.Scanner;

public class ScannerTest {
	public static void main(String[] args) {
		//身高未知,采用键盘录入实现。首先导包,然后创建对象。
		Scanner sc = new Scanner(System.in);
		
		//键盘录入三个身高分别赋值给三个变量。
		System.out.println("请输入第一个和尚的身高:");
		int height1 = sc.nextInt();
		
		System.out.println("请输入第二个和尚的身高:");
		int height2 = sc.nextInt();
		
		System.out.println("请输入第三个和尚的身高:");
		int height3 = sc.nextInt();
		
		//用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。
		int tempHeight = height1 > height2 ? height1 : height2;
		
		//用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。
		int maxHeight = tempHeight > height3 ? tempHeight : height3;
		
		//输出结果。
		System.out.println("这三个和尚中身高最高的是:" + maxHeight +"cm");
	}
}

三、流程控制语句

if结构

if语句格式1
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后面的语句内容

在这里插入图片描述
在这里插入图片描述

/*
	if语句格式1

	格式:
		if (关系表达式) {
			语句体;	
		}
	
	执行流程:
		1:首先计算关系表达式的值
		2:如果关系表达式的值为true就执行语句体
		3:如果关系表达式的值为false就不执行语句体
		4:继续执行后面的语句内容
*/
public class IfDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//定义两个变量
		int a = 10;
		int b = 20;
		
		//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于b
		if(a == b) {
			System.out.println("a等于b");
		}
		
		//需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于c
		int c = 10;
		if(a == c) {
			System.out.println("a等于c");
		}
		
		System.out.println("结束");
	}
}

if语句格式2
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容

在这里插入图片描述

在这里插入图片描述

/*
	if语句格式2

	格式:
		if (关系表达式) {
			语句体1;	
		} else {
			语句体2;	
		}
	
	执行流程:
		1:首先计算关系表达式的值
		2:如果关系表达式的值为true就执行语句体1
		3:如果关系表达式的值为false就执行语句体2
		4:继续执行后面的语句内容
*/
public class IfDemo02 {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//定义两个变量
		int a = 10;
		int b = 20;
		b = 5;
		
		//需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,如果不是,在控制台输出:a的值不大于b
		if(a > b) {
			System.out.println("a的值大于b");
		} else {
			System.out.println("a的值不大于b");
		}
		
		System.out.println("结束");
	}
}

if语句案例:奇偶数
需求:任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
分析:
①为了体现任意给出一个整数,采用键盘录入一个数据
②判断整数是偶数还是奇数要分两种情况进行判断,使用if…else结构
③判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0
④根据判定情况,在控制台输出对应的内容

/*
	奇偶数
	
	需求:
		任意给出一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数。
*/

import java.util.Scanner;

public class IfTest01 {
	public static void main(String[] args) {
		//为了体现任意给出一个整数,采用键盘录入一个数据。(导包,创建对象,接收数据)
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个整数:");
		int number = sc.nextInt();
		
		//判断整数是偶数还是奇数要分两种情况进行判断,使用if..else结构		
		//判断是否偶数需要使用取余运算符实现该功能 number % 2 == 0
		//根据判定情况,在控制台输出对应的内容
		if(number%2 == 0) {
			System.out.println(number + "是偶数");
		} else {
			System.out.println(number + "是奇数");
		}
		
	}
}

if语句格式3
执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④…
⑤如果没有任何关系表达式为true,就执行语句体n+1。

在这里插入图片描述
在这里插入图片描述

/*
	if语句格式3

	格式:
		if (关系表达式1) {
			语句体1;	
		} else if (关系表达式2) {
			语句体2;	
		} 
		…
		else {
			语句体n+1;
		}

	
	执行流程:
		1:首先计算关系表达式1的值
		2:如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
		3:如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
		4:…
		5:如果没有任何关系表达式为true,就执行语句体n+1。
*/

import java.util.Scanner;

public class IfDemo03 {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个星期数(1-7):");
		int week = sc.nextInt();
		if(week<0 || week>7){
			if(week == 1) {
				System.out.println("星期一");
			} else if(week == 2) {
				System.out.println("星期二");
			} else if(week == 3) {
				System.out.println("星期三");
			} else if(week == 4) {
				System.out.println("星期四");
			} else if(week == 5) {
				System.out.println("星期五");
			} else if(week == 6) {
				System.out.println("星期六");
			} else {
				System.out.println("星期日");
			}
		}
		System.out.println("结束");
	}
}

if语句格式3案例:
需求:小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明
的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
分析:
①小明的考试成绩未知,可以使用键盘录入的方式获取值
②由于奖励种类较多,属于多种判断,采用if…else…if格式实现
③为每种判断设置对应的条件
④为每种判断设置对应的奖励

/*
	考试奖励
	
	需求:
		小明快要期末考试了,小明爸爸对他说,会根据他不同的考试成绩,送他不同的礼物,假如你可以控制小明的得分,
		请用程序实现小明到底该获得什么样的礼物,并在控制台输出。
		
	奖励:
		95~100		山地自行车一辆
		90~94		游乐场玩一次
		80~89		变形金刚玩具一个
		80以下		胖揍一顿
*/

import java.util.Scanner;

public class IfTest02 {
	public static void main(String[] args) {
		//小明的考试成绩未知,可以使用键盘录入的方式获取值
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个分数:");
		int score = sc.nextInt();
		
		//由于奖励种类较多,属于多种判断,采用if...else...if格式实现
		//为每种判断设置对应的条件
		//为每种判断设置对应的奖励
		/*
		if(score>=95 && score<=100) {
			System.out.println("山地自行车一辆");
		} else if(score>=90 && score<=94) {
			System.out.println("游乐场玩一次");
		} else if(score>=80 && score<=89) {
			System.out.println("变形金刚玩具一个");
		} else {
			System.out.println("胖揍一顿");
		}
		*/
		
		//数据测试:正确数据,边界数据,错误数据
		if(score>100 || score<0) {
			System.out.println("你输入的分数有误");
		} else if(score>=95 && score<=100) {
			System.out.println("山地自行车一辆");
		} else if(score>=90 && score<=94) {
			System.out.println("游乐场玩一次");
		} else if(score>=80 && score<=89) {
			System.out.println("变形金刚玩具一个");
		} else {
			System.out.println("胖揍一顿");
		}
	}
}

四、switch语句

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

/*
	switch语句
	
	格式:
		switch(表达式) {
			case 值1:
			语句体1;
			break;
			case 值2:
			语句体2;
			break;
			…
			default:	
			语句体n+1;
			[break;]
		}

	格式说明:
		表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
		case:后面跟的是要和表达式进行比较的值。
		break:表示中断,结束的意思,用来结束switch语句。
		default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。

	执行流程:
		首先计算表达式的值。
		依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
		如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束掉。
*/	

import java.util.Scanner;

public class SwitchDemo {
	public static void main(String[] args) {
		System.out.println("开始");
		
		//需求:键盘录入一个星期数(1,2,...7),输出对应的星期一,星期二,...星期日
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个星期数(1-7):");
		int week = sc.nextInt();
		
		switch(week) {
			case 1:
				System.out.println("星期一");
				break;
			case 2:
				System.out.println("星期二");
				break;
			case 3:
				System.out.println("星期三");
				break;
			case 4:
				System.out.println("星期四");
				break;
			case 5:
				System.out.println("星期五");
				break;
			case 6:
				System.out.println("星期六");
				break;
			case 7:
				System.out.println("星期日");
				break;
			default:
				System.out.println("你输入的星期数有误");
				break;
		}
		
		System.out.println("结束");
	}
}

需求:一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。
春:3、4、5 夏:6、7、8 秋:9、10、11 冬:1、2、12

/*
	春夏秋冬

	需求:
		一年有12个月,分属于春夏秋冬4个季节,键盘录入一个月份,请用程序实现判断该月份属于哪个季节,并输出。

	春:3、4、5
	夏:6、7、8
	秋:9、10、11
	冬:1、2、12
*/

import java.util.Scanner;

public class SwitchTest {
	public static void main(String[] args) {
		//键盘录入月份数据,使用变量接收
		Scanner sc = new Scanner(System.in);
		
		System.out.println("请输入一个月份:");
		int month = sc.nextInt();
		
		//多情况判断,这里采用switch语句实现
		//在每种情况中,完成输出对应的季节
		/*
		switch(month) {
			case 1:
				System.out.println("冬季");
				break;
			case 2:
				System.out.println("冬季");
				//break;
			case 3:
				System.out.println("春季");
				break;
			case 4:
				System.out.println("春季");
				break;
			case 5:
				System.out.println("春季");
				break;
			case 6:
				System.out.println("夏季");
				break;
			case 7:
				System.out.println("夏季");
				break;
			case 8:
				System.out.println("夏季");
				break;
			case 9:
				System.out.println("秋季");
				break;
			case 10:
				System.out.println("秋季");
				break;
			case 11:
				System.out.println("秋季");
				break;
			case 12:
				System.out.println("冬季");
				break;
			default:
				System.out.println("你输入的月份有误");
				//break;
		}
		*/
		
		//case穿透
		switch(month) {
			case 1:
			case 2:
			case 12:
				System.out.println("冬季");
				break;
			case 3:
			case 4:
			case 5:
				System.out.println("春季");
				break;
			case 6:
			case 7:
			case 8:
				System.out.println("夏季");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("秋季");
				break;
			default:
				System.out.println("你输入的月份有误");
		}		
	}
}

五、循环

①for循环

在这里插入图片描述
在这里插入图片描述

/*
	for语句

    格式:
        for(初始化语句;条件判断语句;条件控制语句) {
			循环体语句;
		}

    执行流程:
        1:执行初始化语句
		2:执行条件判断语句,看其结果是true还是false
            如果是false,循环结束
            如果是true,继续执行
		3:执行循环体语句
		4:执行条件控制语句
		5:回到2继续
 */
public class ForDemo {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("HelloWorld");
		System.out.println("--------");
		
		//用循环改进
		for(int i=1; i<=5; i++) {
			System.out.println("HelloWorld");
		}
		
    }
}

需求:求1-5之间的数据和,并把求和结果在控制台输出

/*
	求和
	
	需求:
		求1-5之间的数据和,并把求和结果在控制台输出
*/
public class ForTest02 {
    public static void main(String[] args) {
		//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
		int sum = 0;
		
		//从1开始到5结束的数据,使用循环结构完成
		for(int i=1; i<=5; i++) {
			//将反复进行的事情写入循环结构内部,此处反复进行的事情是将数据 i 加到用于保存最终求和的变量 sum 中
			sum += i;
			/*
				sum += i;	sum = sum + i;
				第一次:sum = sum + i = 0 + 1 = 1;
				第二次:sum = sum + i = 1 + 2 = 3;
				第三次:sum = sum + i = 3 + 3 = 6;
				第四次:sum = sum + i = 6 + 4 = 10;
				第五次:sum = sum + i = 10 + 5 = 15;
			*/
		}
		
		//当循环执行完毕时,将最终数据打印出来
		System.out.println("1-5之间的数据和是:" + sum);
    }
}

需求:求1-100之间的偶数和,并把求和结果在控制台输出

/*
	求偶数和
	
	需求:
		求1-100之间的偶数和,并把求和结果在控制台输出
*/
public class ForTest03 {
    public static void main(String[] args) {
		//求和的最终结果必须保存起来,需要定义一个变量,用于保存求和的结果,初始值为0
		int sum = 0;
		
		//对1-100的数据求和与1-5的数据求和几乎完全一样,仅仅是结束条件不同
		for(int i=1; i<=100; i++) {
			//对1-100的偶数求和,需要对求和操作添加限制条件,判断是否是偶数
			if(i%2 == 0) {
				sum += i;
			}
		}
		
		//当循环执行完毕时,将最终数据打印出来
		System.out.println("1-100之间的偶数和是:" + sum);
    }
}

需求:在控制台输出100-1000中所有的“水仙花数”(水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数)

/*
	水仙花
	
	需求:
		在控制台输出100-1000中所有的"水仙花数"
*/
public class ForTest04 {
    public static void main(String[] args) {
		//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
		/*
		for(int i=100; i<=999; i++) {
			
		}
		*/
		for(int i=100; i<1000; i++) {
			//在计算之前获取三位数中每个位上的值
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/10/10%10;
			
			//判定条件是将三位数中的每个数值取出来,计算立方和后与原始数字比较是否相等
			if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
				//输出满足条件的数字就是水仙花数
				System.out.println(i);
			}
		}
    }
}

需求:统计100-100中“水仙花数”一共有多少个,并在控制台输出个数

/*
	统计
	
	需求:
		统计100-100中"水仙花数"一共有多少个,并在控制台输出个数
*/
public class ForTest05 {
    public static void main(String[] args) {
		//定义变量count,用于保存“水仙花数”的数量,初始值为0
		int count = 0;
		
		//输出所有的水仙花数必然要使用到循环,遍历所有的三位数,三位数从100开始,到999结束
		for(int i=100; i<1000; i++) {
			//在计算之前获取三位数中每个位上的值
			int ge = i%10;
			int shi = i/10%10;
			int bai = i/10/10%10;
			
			//在判定水仙花数的过程中,满足条件不再输出,更改为修改count的值,使count+1
			if(ge*ge*ge + shi*shi*shi + bai*bai*bai == i) {
				count++;
			}
		}
		
		//打印输出最终结果
		System.out.println("水仙花共有:" + count + "个");
    }
}

②while循环

在这里插入图片描述

/*
	while语句

    基本格式:
        while(条件判断语句) {
			循环体语句;
		}
		
	完整格式:
		初始化语句;
		while(条件判断语句) {   
			循环体语句;
			条件控制语句;
		}

    执行流程:
        1:执行初始化语句
		2:执行条件判断语句,看其结果是true还是false
            如果是false,循环结束
            如果是true,继续执行
		3:执行循环体语句
		4:执行条件控制语句
		5:回到2继续
 */
public class WhileDemo {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
		//for循环实现
		for(int i=1; i<=5; i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("--------");
		
		//while循环实现
		int j = 1;
		while(j<=5) {
			System.out.println("HelloWorld");
			j++;
		}
		
    }
}

需求:世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?

/*
	珠穆朗玛峰
	
	需求:
		世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。
		请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
*/
public class WhileTest {
    public static void main(String[] args) {
		//定义一个计数器,初始值为0
		int count = 0;
		
		//定义纸张厚度
		double paper = 0.1;
		
		//定义珠穆朗玛峰的高度
		int zf = 8844430;
		
		//因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
		//折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
		while(paper <= zf) {
			//循环的执行过程中每次纸张折叠,纸张的厚度要加倍
			paper *= 2;
			
			//在循环中执行累加,对应折叠了多少次
			count++;
		}
		
		//打印计数器的值
		System.out.println("需要折叠:" + count + "次");
    }
}

③do…while循环

在这里插入图片描述

/*
	do...while语句

    基本格式:
        do {
			循环体语句;
		}while(条件判断语句);
		
	完整格式:
		初始化语句;
		do {
			循环体语句;
			条件控制语句;
		}while(条件判断语句);

    执行流程:		
		1:执行初始化语句
		2:执行循环体语句
		3:执行条件控制语句
		4:执行条件判断语句,看其结果是true还是false
			如果是false,循环结束
			如果是true,继续执行
		5:回到2继续
 */
public class DoWhileDemo {
    public static void main(String[] args) {
        //需求:在控制台输出5次"HelloWorld"
		//for循环实现
		for(int i=1; i<=5; i++) {
			System.out.println("HelloWorld");
		}
		System.out.println("--------");
		
		//do...while循环实现
		int j = 1;
		do {
			System.out.println("HelloWorld");
			j++;
		}while(j<=5);
		
    }
}

三种循环的区别:

在这里插入图片描述

死循环(无限循环)的三种格式

在这里插入图片描述

/*
	三种循环的区别
 */
public class LoopTest {
    public static void main(String[] args) {
		/*
		//for循环
		for(int i = 3; i<3; i++) {
			System.out.println("我爱Java");
		}
		System.out.println("--------");
		
		//while循环
		int j = 3;
		while(j<3) {
			System.out.println("我爱Java");
			j++;
		}
		System.out.println("--------");
		
		//do...while循环
		int k = 3;
		do {
			System.out.println("我爱Java");
			k++;
		}while(k<3);
		*/
		
		/*
		//for循环
		for(int i = 1; i<3; i++) {
			System.out.println("我爱Java");
		}
		//System.out.println(i);
		System.out.println("--------");
		
		//while循环
		int j = 1;
		while(j<3) {
			System.out.println("我爱Java");
			j++;
		}
		System.out.println(j);
		System.out.println("--------");
		*/
		
		//死循环
		/*
		for(;;) {
			System.out.println("for");
		}
		*/
		
		/*
		while(true) {
			System.out.println("while");
		}
		*/
		
		do {
			System.out.println("do...while");
		}while(true);
		
		
    }
}

④跳转控制语句

在这里插入图片描述

/*
	continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行
	break:用在循环中,基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环
*/
public class ControlDemo {
	public static void main(String[] args) {
		for(int i = 1; i<=5; i++) {
			if(i%2 == 0) {
				//continue;
				break;
			}
			
			System.out.println(i);
		}
	}
}

六、Random

Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能

在这里插入图片描述

/*
	Random
	
	作用:
		用于产生一个随机数

	使用步骤:
		1:导包
			import java.util.Random;
		2:创建对象
			Random r = new Random();
		3:获取随机数
			int number = r.nextInt(10);
			获取数据的范围:[0,10) 包括0,不包括10
*/

import java.util.Random;

public class RandomDemo {
	public static void main(String[] args) {
		//创建对象
		Random r = new Random();
		
		//用循环获取10个随机数
		for(int i=0; i<10; i++) {
			//获取随机数
			int number = r.nextInt(10);
			System.out.println("number:" + number);
		}
		
		//需求:获取一个1-100之间的随机数
		int x = r.nextInt(100) + 1;
		System.out.println(x);
	}
}

需求:程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示
A. 如果猜的数字比真实数字大,提示你猜的数据大了
B. 如果猜的数字比真实数字小,提示你猜的数据小了
C. 如果猜的数字与真实数字相等,提示恭喜你猜中了

/*
	猜数字

	需求:
		程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
		当猜错的时候根据不同情况给出相应的提示
		
		如果猜的数字比真实数字大,提示你猜的数据大了
		如果猜的数字比真实数字小,提示你猜的数据小了
		如果猜的数字与真实数字相等,提示恭喜你猜中了
*/

import java.util.Random;
import java.util.Scanner;

public class RandomTest {
	public static void main(String[] args) {
		//要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100
		Random r = new Random();
		int number = r.nextInt(100) + 1;
		
		while(true) {
			//使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现
			Scanner sc = new Scanner(System.in);
			
			System.out.println("请输入你要猜的数字:");
			int guessNumber = sc.nextInt();
			
			//比较输入的数字和系统产生的数据,需要使用分支语句。这里使用if..else..if..格式,根据不同情况进行猜测结果显示
			if(guessNumber > number) {
				System.out.println("你猜的数字" + guessNumber + "大了");
			} else if(guessNumber < number) {
				System.out.println("你猜的数字" + guessNumber + "小了");
			} else {
				System.out.println("恭喜你猜中了");
				break;
			}
		}
		
	}
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-02-05 21:35:51  更:2022-02-05 21:35:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:47:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码