2022-07-14 第二小组 张鑫 学习笔记
实训第七天 Java基础2
1.学习重点
1.字符串
2.包
3.键盘输入
4.多重if
5.数组
6.循环语句
7.简单计算器
2.学习心得
今天进一步对Java基础进行学习,关于字符串,包的命名规则以及循环语句的知识有了深入了解,今天还做了几个简单的小案例,还是那句话,听的好永远都不代表做的好,虽然感觉知识点已经理解的很清楚了,但自己做还是十分吃力的,尤其是做计算器的部分,还是经验太少了!接下来还要继续努力啊!
3.学习内容
字符串
Java中的字符串只能用双引
没有范围
除了基本数据类型,都是引用数据类型
String v1 = "张三";
System.out.println("早上好,"+v1+",吃饭了吗?");
包:
实质上就是文件夹,分门别类
包的命名规则:
1.尽量使用全小写
2.尽量不要出现_&123
3.一般情况下,使用站点名的逆序 www.baidu.com
包名:com.baidu.模块名
包名:com.baidu.架构名
根据实际情况com.baidu.模块、架构、功能.xxx
.代表一级
工具:键盘输入
Scanner in = new Scanner(System.in);
//开始输入
String s = in.next();
System.out.println("你输入了:"+ s);
流程控制
if(条件表达式){ 要执行的语句 }
多重if
如果每个if之间没有联系,这些if有可能都执行
if...else if...else..
else 互斥的功能,一套结构中至多走一个
我们在写if...else if的时候,要注意条件的顺序
范围小的写前,范围大的写后
如果情况比较多,条件判断比较复杂,最后一种情况不建议直接写else
案例1:
请输入第一个整数:
请输入第二个整数:
需求:
如果第一个数是8,并且第二个数是9,就打印两个数的和
如果其中有一个是8,有一个是9,就打印两个数的差
如果两个数既没有8,又没有9,就分别打印两个数
代码
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个数:");
int num2 = sc.nextInt();
if(num1 == 8 && num2 == 9){
System.out.println(num1+"+"+num2+"="+(num1+num2));
}else if(num1 == 8 || num2 == 8 || num1 == 9 || num2 == 9){
System.out.println(num1+"-"+num2+"="+(num1-num2));
}else if(num1 != 8 && num1 != 9 && num2 !=8 && num2 != 9){
System.out.println("两个数分别是:"+num1+","+num2);
}
switch
Java里的switch只能判断如下数据类型
整型:byte,short,int
浮点型:无
字符型:char
字符串:string:jdk1.7以后的版本
枚举
switch结构清晰,简明扼要
break的作用
default的位置是灵活的
案例2
成绩管理系统
键盘输入成绩
如果成绩是60分:及格
如果成绩是85分:奖励你一台ipad
如果成绩是100分:奖励你一台十三香
其他情况:没有奖励
代码
Scanner sc = new Scanner(System.in);
System.out.println("请输入成绩:");
int score =sc.nextInt();
switch (score){
case 60:
System.out.println("及格");
break;
case(85):
System.out.println("奖励一台ipad");
break;
case(100):
System.out.println("奖励一台十三香");
break;
default:
System.out.println("没有奖励");
}
数组
一旦声明,必须指定长度
一维数组
int []a1 ={1,2,3,4,5};
int a2[] ={1,2,3,4,5};
int []a2 =new int[5];
int []a3 =new int[]{1,2,3,4,5};
二维数组
开发中最多用到二维
访问数组元素通过下标(索引)
下标、索引从0开始
int [][]a4 =new int[5][];
数据类型的初始值:
byte,short,int,long:0
float,double:0.0
char:空白(\u0000)
boolean:false
string:null
int[]:null
数组取值
System.out.println(a3[4]);
赋值
a3[4] = 100;
数组长度是属性,不是方法
System.out.println(a2.length);
当程序抛出异常时,出现异常位置后面的代码不会执行
案例3
创建一个数组[3]
通过键盘输入,给数组中的元素赋值..
不用循环
int []a =new int[3];
Scanner sc = new Scanner(System.in);
int i = 0;
System.out.println("请输入第一个数:");
a[i]= sc.nextInt();
i++;
System.out.println("请输入第二个数:");
a[i] = sc.nextInt();
i++;
System.out.println("请输入第三个数:");
a[i] = sc.nextInt();
System.out.println(a[0]+","+a[1]+","+a[2]);
for循环
for (int i =0;i<10;i++){
System.out.println(i);
}
案例4及代码
打印5*5矩形
执行流程
1.i=0 外层的for循环启动
2.执行外层的for循环的循环体
3.走里层的for循环
4.里层的for循环想要走完j=0---j=4打印了5次*号
5.里层的for循环走完了之后,相当于外层循环的循环体执行完毕,也就是i=0的这次外层循环执行完毕,开始执行i++
6.i=1 外层循环再次启动
....
....
for (int i = 0;i < 5;i++){
for (int j = 0;j < 5;j++){
System.out.print("*");
}
//debug
System.out.println();
}
break 和 continue
for (int i = 1; i <100; i++) {
//需求-数7
//从0到100 尾数是7或者是7的倍数
if (i % 7 == 0 || i % 10 == 7) {
System.out.println(i);
//跳出循环
break;
//终止当前此循环,开始下一次循环
continue;
}else{
System.out.println(i);
}
}
循环的标签: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 a;
break和continue只能控制离他们最近的循环
continue;
}
System.out.println("hhh");
}
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的操作更加安全,不影响原始数据 jdk5后才有
for(int i:arr){
//i就是数组中的元素
System.out.println(i+1);
}
while 和 do...while
do..while无论条件是否满足,循环至少执行一次.
while循环条件不满足,一次也不执行。
int i = 10;
while(i<100){
System.out.println(i);
i++;
}
//do...while
do{
System.out.println(i);
i++;
}while (i<20);
int[][] arr = new int[2][];
arr[0]=new int[]{1,2,3,4,5};
arr[1]=new int[]{-1,-2,-3,-4,-5};
for (int[] ints :arr){
for (int anINt :ints){
System.out.print(anINt+"、");
}
System.out.println();
}
简单计算器
Scanner sc = new Scanner(System.in);
index:for (; ; ) {
System.out.println("请输入第一个数:");
double num1 = sc.nextDouble();
n2:for(;;){
System.out.println("请输入第二个数:");
double num2 = sc.nextDouble();
System.out.println("请输入运算符号:+-*/");
String sep = sc.next();
fh:for(;;){
switch (sep){
case "+":
System.out.println(num1 + sep + num2 + "=" + (num1+num2));
break;
case "-":
System.out.println(num1 + sep + num2 + "=" + (num1-num2));
break;
case "*":
System.out.println(num1 + sep + num2 + "=" + (num1*num2));
break;
case "/":
if (num2 == 0) {
System.out.println("除数不能为0,请重新输入");
continue n2;
}else {
System.out.println(num1 + sep + num2 + "=" + (num1/num2));
break;
}
default:
System.out.println("符号输入错误,请重新输入...");
continue fh;
}
c:for(;;){
System.out.println("是否继续计算:1.继续 2.退出");
String flag =sc.next();
switch (flag){
case "1":
continue index;
case "2":
System.out.println("计算器即将关闭,谢谢使用!");
break index;
default:
System.out.println("您输入的有误,请重新输入");
continue c;
}
}
}
}
}
猜数字
请输入一个数字:
20
数字保存成功,请猜猜数字是几
比较大小
如果大了就提示大了,如果小了就提示小了
知道猜到这个数,游戏停止
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数字");
double num =sc.nextDouble();
System.out.println("猜数游戏即将开始");
System.out.println("请猜猜数字是几?");
a:while(true) {
double guess = sc.nextDouble();
if (guess > num) {
System.out.println("大了");
continue a;
} else if (guess < num) {
System.out.println("小了");
continue a;
} else {
System.out.println("猜对了!");
// break ;
//终止程序执行的方式
//0 代表安全退出
//-1强制退出
System.exit(status:0);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本