20220714 第二小组 罗大禹 学习笔记
Java
今日重点
- 流程控制语句:
- 循环
学习心得
今天上课做练习时,我写的代码有许多欠考虑的地方,比如没有提示;而老师的代码更加明了,学到了很多东西,明天继续加油
学习内容
包(理解)
什么是包???
实质上就是文件夹
作用:分门别类
包的命名规则(行业规范):
- 尽量使用全小写字母
- 包名尽量不要出现 _ $ 123
- 一般情况下,使用站点名的逆序 eg :www.123.com
包名:com.123.模块名
com.123.架构名
根据实际情况 com.123.模块.架构.功能.xxx
一个点就代表一级
引用数据类型(理解)
首字母大写(大驼峰且一个单词)即为类
JDK提供的类只有.class,没有.java
基本数据类型有8种,引用数据类型有多少种?
除了基本数据类型,都是引用数据类型
点击查看代码
public class Ch01 {
public static void main(String[] args) {
//String :字符串
//Java中的字符串只能用双引号,目前可理解为String没有范围
String v1 = "张三";
///要学会拼接字符串
//eg :
System.out.println("早上好" + ",吃饭了没");
}
}
工具(理解)
- 键盘输入
该工具具有返回值,在控制台里输入的值为其返回值
点击查看代码
package com.morinng;
import java.util.Scanner;
public class Ch02 {
public static void main(String[] args) {
//构建一个工具,键盘输入
Scanner in = new Scanner (System.in);
//开始输入
String s = in.next();
System.out.println("你输入了:" + s);
}
}
流程控制语句:(理解)
1、if...else...
点击查看代码
语法:if(条件表达式){
要执行的代码们;
}else{
要执行的代码们;
}
1.多重if
每个if之间没有联系,这些if有可能都执行
if...else if ... else
else互斥功能,一套结构种至多执行一个
2.if...else if ... else
我们在写if..else if...的时候,要注意条件的顺序,范围小的写在上面,若范围大的写在了上面,可能会导致范围小的没有用了
if(a>o){
xxxx
}else if (a>-1){
xxxxx
}
3.注意
如果情况比较多,条件判断比较复杂,最后一种情况不建议直接写else
最后面必须有百分之二百的把握,可以写else
否则写else if
练习
点击查看代码
package com.morinng;
import java.util.Scanner;
public class Ch03 {
public static void main(String[] args) {
/*
请输入第一个整数:
xxxxxx
请输入第二个整数:
xacacc
需求:
如果第一个数是8并且第二个数是9 ,就打印两个数的和
如果有一个8,有一个9,就打印差
如果两个数既没有8也没有9,就分别打印两个数
if...else...
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int i1 = in.nextInt();
System.out.println("请输入第二个整数:");
int i2 = in.nextInt();
if ((i1 == 8) && ( i2 == 9)) {
System.out.println(i1 + "+" + i2 +"=" + (i1 + i2));
} else if ((i1 == 9) || ( i1 == 8) || (i2 == 9)||(i2 ==8)) {
System.out.println(i1 + "-" + i2 + "=" + (i1 - i2));
}else if ((i1!=8)&&(i2!=9)&&(i1!=9)&&(i2!=8)){
System.out.println("两个数分别为:" + i1 + "," + i2);
}
}
}
2、switch...case:
点击查看代码
语法
switch(表达式){
case选项1 :
要执行的代码
break
case选项2 :
要执行的代码
break
......
default:
要执行的代码
}
当表达式的值在case中匹配成功,会执行对应的代码,但是停不下来,后面的代码会继续执行,加了break后会停下来
1.Java中的switch只能判断如下数据类型
-
整型:byte short int
-
字符型:char
-
字符串 String:要求必须在JDK7以后的版本包括7
-
枚举:要求JDK5以后的版本包括5
2.注意
switch结构清晰,简明扼要,但不要强行用switch
注意break的作用;
default的位置比较灵活,但别乱放
练习
点击查看代码
package com.morinng;
import java.util.Scanner;
public class Ch04 {
public static void main(String[] args) {
/*
成绩管理系统
键盘输入成绩
如果成绩是60分,及格
如果成绩是85分,奖励一个ipad
如果成绩是100分,奖励你一台十三香promax
其他情况,没有奖励
*/
Scanner in =new Scanner(System.in);
System.out.println("请输入你的成绩" );
byte score = in.nextByte();
switch (score){
case 60 :
System.out.println("及格" );
break;
case 85 :
System.out.println("奖励你一台ipad");
break;
case 100 :
System.out.println("奖励你一台十三香promax" );
break;
default:
System.out.println("没有奖励");
}
}
}
数组(理解)
数组
数组一旦声明,必须指定长度
//写法
/*第一种*/int [] a1 = {1,2,3,4,5};
//或
int a1 [] = {1,2,3,4,5};
/*第二种*/int [] a2 = new int[5];
/*第三种*/int [] a3 = new int[] {1,2,3,4};
int [] a4;
a4 = new int[]{1,2,3,4};
点击查看代码
public class Ch05 {
public static void main(String[] args) {
//一维数组
int [] a1 = {1,2,3,4,5};
//二维数组(每个二维数组里的元素都是一维数组)
//二维数组以上都成为多维数组
//开发中,最多用到二维
int[][] [] a2 = new int[5][][];
int [] a3 = new int[]{1,2,3,4};
// 访问数组元素通过下标(索引)
// 下标、索引从0开始
// 取值
System.out.println(a3[0]);
// 赋值
a3[0]=1;
//当程序抛出异常时,出现异常的位置后面的代码不会执行
a3[100] = 100;
// 数组的长度是属性,而不是方法
System.out.println(a3.length);
}
}
数据类型的初始值:
byte、short、int、long:0
float、double:0.0
char:\u0000=>' '
boolean:false
String:null
int[]:null
练习
点击查看代码
package com.morinng;
import java.util.Scanner;
public class Ch06 {
public static void main(String[] args) {
/*
创建一个数组[3]
通过键盘输入,给数组中的元素赋值
不能有循环
*/
//我的代码
Scanner in = new Scanner(System.in);
int []a1 =new int [3];
int b1 = in.nextInt();
int b2 = in.nextInt();
int b3 = in.nextInt();
a1[0] = b1;
a1[1] = b2;
a1[2] = b3;
System.out.println(a1[0]+"," +a1[1]+","+a1[2]);
//老师的代码
int i = 0;
System.out.println("请输入第一个数:");
a1[i]=in.nextInt();
i++;
System.out.println("请输入第二个数:");
a1[i]=in.nextInt();
i++;
System.out.println("请输入第三个数:");
a1[i]=in.nextInt();
System.out.println("数组的数据为" + a1[0]+"," +a1[1]+","+a1[2]);
}
}
循环(理解)
1、for循环语句
语法
初始化条件
循环体
循环条件
//eg
for(int i=0;i<10;i++){
System.out.println("i="+1);
}
//
注意
初始化条件实际上可以是任意类型,只不过大部分情况我们使用的是int
练习
点击查看代码
public class Ch02 {
public static void main(String[] args) {
/* 需求:
输出一个5*5的(*)矩形:
*****
*****
*****
*****
*****
* 用循环的嵌套
* 需要用到不换行的打印输出...
*/
//不换行输出为 System.out.print();
for (int i = 0; i < 5; i++) {
/* 分析
执行流程:
1、i=0 外层的for循环启动
2、执行外层的for循环的循环体
3、走里层的for循环(循环体)
4、里层的for循环想要走完j==0--j==4打印了5次*号
5、里层的for循环走完了之后,相当于外层循环的循环体执行完毕
6、也就是i=0这次外层循环执行完毕,开始执行i++
7、i=1,外层的循环再次启动
*/
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
debug工具
在使用debug之前,需要在程序上打一个断点,调试完毕把断点去掉
break和continue
跳出循环
break
终止当前次循环,开启下一次循环
continue;
点击查看代码
package com.afternoon;
public class Ch04 {
public static void main(String[] args) {
/*
循环的标签:功能叫:goto语法 goto功能
*/
a:for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.println("j=" + j);
if(j==3){
/*
break和continue只能控制离他们最近的循环,若想控制其他循环,需要给该循环加个标签,然后在break 或 continue 后加上该标签
*/
//停止a
// break :a;
continue;
}
}
System.out.println("i="+i);
}
}
}
2、foreach——增强for循环
点击查看代码
package com.afternoon;
public class Ch05 {
public static void main(String[] args) {
//foreach,增强for循环
//使用for循环遍历数组
int []arr = new int []{12,45,76,89,-50};
//遍历:把数组中的元素都操作一遍(访问一便)
for (int i = 0 ;i<arr.length;i++){
System.out.println(arr[i]);
}
//foreach语句(增强for循环)遍历数组
/*
可以理解为把数组中的元素通过:镜像给i
我们操作的不是原始数据,我们操作的是镜像数据
foreach的操作更加的安全,不影响原始数据
foreach是JDK5以后才有的
*/
for (int i : arr) {
System.out.println(i+1);
}
//i就是数组中的元素
}
}
3、while循环
int a = 10
while(a<100){
a++;
}
4、do...while循环
do{
System.out.println(i);
i++;
}while (i<20);
while和do..while的区别:
do...while循环无论条件是否满足,循环至少执行一次
while循环如果条件不满足,一次都不循环
二维数组遍历
for (int[] ints : arr) {
for (int[] anInt : ints) {
System.out.println(anInt + "、");
}
System.out.println();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】