目标定位规划
- 每天观看5集Java相关学习教程
day-01
配置完了IDEA开发工具
- 创建项目时需要勾选✔[从模板创建项目]否则需要自己配置环境
- 熟悉的味道,HelloWorld!
函数相关
- Scanner用于获取用户输入内容
字符串相关
- 字符串之间用+来连接
在使用println打印数字计算时,需要在数字运算外围用括号()引起来,否则将给你当作字符串处理
- ❌错误示例:2+3,最终输出:2+3
- ✔正确示例:(2+3),最终输出:5
- Tips:貌似并不完全正确,需考虑优先级,在day-02中详细记录优先级
- 例如涉及优先级方面的代码示例
public static void main(String[] args) { System.out.println(2+3+"=2+3="+(2+3)); // 输出结果为:5=2+3=5 }
今天学习的函数
- System.out.println(String)
输出打印字符串
- Scanner
- 用户输入/获取用户输入字符串
day-02
Scanner函数相关拓展
- .nextLine,一整行
- .nextInt,整数
变量命名格式
<类型> <变量名>
- Tips:老规矩命名规范(🈲用保留字if、char……)
- 例如:int a 或 int a = 0
也可以同时声明多个变量
- 例如:int a=0,b=0,c=0 或 int a,b,c 一下声明了3个变量,分别为abc
final常量
final int num = 100; ❌错误:num = 20; //你想要将num变量重新赋值为20,由100变为→20
- 在这个变量前面加上final,这个变量则变为**常量**
变量类型
- double 浮点类型,无法完全精度计算,例如:1.2-1.1=0.9999……8,会小数值计算会丢失精度
运算符优先级,优先级越靠前越先执行 {#优先级}
优先级 运算符 含义 先后顺序 举例 1 + 取正 右→左 a*+b=a*(+b)=a*b 1 - 取负 右→左 a*-b=a*(-b)=a*-b 2 * 乘法 左→右 a*b 2 / 除法 左→右 a/b 2 % 取余 左→右 6/4=1.2=2 3 + 加法 左→右 a+b 3 - 减法 左→右 a-b 3 + 字符串连接符 左→右 “Hi” + "!" = “Hi!” 4 = 赋值 右→左 a=0
类型强制转换
(类型)(需要转换的内容)
例如
double a = 170.6; //此时的a为170.6 (int)(a); //此时的a为170 //!!注意!!WARNing!! a = (int)(a); //这样并不会将a的类型更改为Int型,此时如果打印a则输出的是170.0,因为将其转为了整数变为了170,但并因为你的赋值类型而改变原来的变量类型。它赋值后仍然是double型,所以是170.0
day-03
关系运算
- ==、!=、>、>=、<、<=,单=是赋值
- 关系运算优先级低于算术运算
if语句的用法
常用的
//①第一种 if(/*判断条件*/){ //执行代码……若干行; }else{ //执行代码……若干行; } //②第二种 if(/*判断条件*/){ //执行代码……若干行; }else if{ //执行代码……若干行; }
非常用的 特殊用法
if(/*判断条件*/) 一行代码; else 一行代码; //这个用法有点像python,但只能含带一行代码,注意结尾加分号,以及字段缩进 //⚠不建议这么用,阅读代码非常费劲!!!
好耶感觉今天的学习如此划水😜
day-04
switch语句
switch(/*要判断的内容*/){ case /*条件*/: //执行若干行代码…… break; default: //都不符合条件下,执行这一个默认的 break;
while语句(循环)
while(/*条件为真*/){ //执行若干行代码…… //只有条件为真时才会不断地重复执行里面的代码
do……while语句(循环)
do{ //先执行后判断
for语句(循环/计数)
for(int i=0;i<10;i++){ //执行若干行代码…… } for(记录变量;条件;循环一次后执行){
Math.random
生成一个随机浮点数
- 例如:0.6351786319862468,比如你想要1-100之间的随机数,你则可以在这后面*100+1并将它转为int整数型来达到你想要的效果,为什么要+1呢,因为你很有可能生成一个99,所以要+1让他变成100
day-05
一些简化的用法
- a=a+1 → a+=1
- a=a*6 → a*=6
小陷阱⚠
- a*=b+6 → a=a*(b+b)
i++ → i=i+1(执行代码后+1)
- 🌰例子:a=i++ → a=6 i=7
++i → i=i+1 (执行代码前先+1)
- 🌰例子:a=++i → a=7 i=7
break和continue的区别
break是跳出整个循环
拓展:如果遇到套了好多层的循环,可以在循环最前面一行给循环命名,然后用break [名称];来跳出整个多层循环
🌰子
out: for (int k = 2; k < num; k++) { for (int b = 2; b < num; b++) { for (int c = 2; c < num; c++) { for (int d = 2; d < num; d++) { break out; } } } }
continue是跳到下一次循环中
- 顶级理解:比如我要循环3次,在第2次中遇到了continue,那么第2次后面的就不管了,直接开始第3次循环
Boolean布尔类型
- True、False
! 逻辑非
- 比如你是!true,那么它实际上是false,相当于取反
&& 逻辑与
- 且的意思,都满足才为true,否则为false
|| 逻辑或
- 有一个满足就是true,全不满足为false
day-06
printf
格式:printf ( [格式] ,[内容] )
- 例如:System.out.printf("%.2f", num);意思是输出精确到num的小数点后两位
数组
定义格式:
<类型>[] <名字> = new <类型>[成员数量]
- 成员数量必须要是整数,且必须明确给出
例如:
int[] num = new int[100]; //定义了一个数组变量,大小是100个成员数
数组.length
- 获取数组成员数量
数组的一些规则
- 下标从0开始……老一套那些不再赘述
day-07
foreach
与for循环的区别
int[] data = {1, 2, 3, 4, 5}; int loc = -1; boolean find = false; System.out.println("请输入你要找的数字:"); int x = in.nextInt(); //======================== for for (int i = 0; i < data.length; i++) { if (data[i] == x) { loc = i; break; } } //======================== foreach for (int k : data) { //格式:for([类型] <变量名> : {数组}) if (k == x) { //意思是将data中的内容分别赋值给 find = true; // k来进行比较 break; } }
Math.sqrt
- 计算平方根
多维数组
创建方式
int[][] a = new int[3][5];//举个例子
- 初始化多维数组
---
**第1周结束咯!!🤩**