2022-7-14 java_2 第七组 刘昀航
@
一、java约定规范
1.关于建包
1.尽量使用全小写字母
2.尽量不要出现_&123
3.一般情况下,使用站点名的逆序www.baidu.com
包名:com.baidu.模块名
com.baidu.架构名
根据实际情况com.模块.架构.功能.xxxx
2.控制台输入(Scanner)
键盘输入:
Scanner scanner = new Scanner(System.in);
方法:
- nextLine() 回车获取整横
- nextInt() 获取整数
- nextXXX() XXX可以是Int,Double等
关于Scanner的bug
先用nextInt()接收int类型,再用nextLine()接收字符串的时候,会导致nextLine() 直接把回车接收到了, nextLine 不能继续接收字符串了
先上代码:
public class Ch02 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入:");
int i = in.nextInt();
System.out.println("请输入:");
String next = in.nextLine();
System.out.println(i);
System.out.println("这是nextLine==》"+next);
}
}
输出为:
显然他并没有给我们机会输入nextLine的值,因为nextLine接收的是一行输入,而他还是以回车作为结束,可以这么理解,当输入1按下回车的时候,nextLine也被触发了。
解决办法: 可以新创建一个Scanner对象再调用nextLine方法
计算器小练习:
点击查看代码
/*
从键盘输入两个数字和一个符号
加减乘除
打印输出计算结果
其中注意:
1.除数不能为0
2.符号输入不对怎么办?
3.计算器能不能一直算下去。
《会用到死循环for(;;){}!!!!!!!!!》
*/
/*
请输入第一个数:
1
请输入第二个数:
2
请输入运算符号:
*
计算结果为:1*2=2
是否继续计算:1、是 2、否
*/
// 可以理解为是准备了一个键盘
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Scanner scanner2 = new Scanner(System.in);
index:
for (; ; ) {
System.out.println("请输入一个数字:");
int num1 = scanner.nextInt();
n1:
for (; ; ) {
System.out.println("请输入第2个数字:");
int num2 = scanner.nextInt();
n2:
for (; ; ) {
System.out.println("请输入想要的运算符号:");
String sign = scanner2.nextLine();
switch (sign) {
case "+":
System.out.println(num1 + "+" + num2 + "=" + num1 + num2);
break;
case "-":
System.out.println(num1 + "-" + num2 + "=" + (num1 - num2));
break;
case "*":
System.out.println(num1 + "*" + num2 + "=" + (num1 * num2));
break;
case "/":
if (num2 == 0) {
System.out.println("除数不能为0,请重新输入!");
continue n1;
} else {
System.out.println(num1 + "/" + num2 + "=" + (num1 / num2));
break;
}
default:
System.out.println("符号输入错误!请重新输入");
continue n2;
}
c:
for (; ; ) {
System.out.println("是否继续计算:1、继续 2、退出");
String flag = scanner.next();
// 我让你输入1或者2,你非得输入3,结果就是你去重新选择
switch (flag) {
case "1":
// 继续计算
continue index;
case "2":
// 退出计算
System.out.println("计算器即将关闭,谢谢使用...");
break index;
default:
// 再重新让你选择一次
System.out.println("您输入的有误,请重新选择!!!");
continue c;
}
}
}
}
}
}
二、
1.数组
建立数组的三种方式:
数组特点:数组一旦声明,必须指定长度
int []a1 = {1,2,3,4,5};
//int a2[] = {1,2}; 不建议使用
int []a2 = new int[5];
int []a4 = new int[]{1,2,3,4};
数据类型的初始值:
byte、short、int、long:0
float、double:0.0
char:\u0000=>' '
boolean:false
String:null
int[]:null
2.二维数组
定义一个二维数组:
int [][] arr = new int[2][];
arr[0] = new int[]{1,2,3,4};
arr[1] = new int[]{-1,-2,-3,-4,-5};
使用for循环遍历二维数组:
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
// 获取二维数组的元素
System.out.print(arr[i][j] + ",");
}
System.out.println();
}
使用增强for循环遍历二维数组
for (int[] ints : arr) {
for (int anInt : ints) {
System.out.print(anInt + "、");
}
System.out.println();
}
三、循环
1.for循环
/*
* 循环
* for循环
* 初始化条件
* 判断条件
* 循环体
* 循环条件
*/
var i = 10;
System.out.println(i);
/*
初始化条件实际上可以是任意类型,只不过大部分情况我们使用的是int
*/
for(int i = 0;i < 10;i++){
System.out.println("i=" + i);
}
for循环的嵌套
/**
* *****
* *****
* *****
* *****
* *****
* 矩形
* 用循环的嵌套
* 需要用到不换行的打印输出....
*/
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();
}
- for循环中可以使用break;语句跳出循环
goto语法
循环的标签:goto语法 goto功能,代码如下:
/*
循环的标签: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 a;
// continue;
}
}
System.out.println("i=" + i);
}
2.foreach语句(增强for循环)
可以理解为把数组中的元素通过:镜像给i
我们操作的不是原始数据,我们操作的是镜像数据
foreach的操作更加的安全,不影响原始数据
foreach是JDK5以后才有的
增强for循环遍历数组:
int [] arr = new int[]{12,45,76,89,-50};
for (int i : arr) {
// i就是数组中的元素
System.out.println(i);
}
3.while 和 do..while
while
while(判断条件){
循环体 (一条或多条语句)
}
//当判断条件不成立时循环结束
do...while
do{
循环体
}while(判断条件)
do-while循环 不管判断条件是否成立
//都会先执行循环体一次
while和do...while的区别:
do...while循环无论条件是否满足,循环至少执行一次。
while循环如果条件不满足,一次都不执行。
2022-7-14 java_2 第七组 刘昀航的更多相关文章
- 2022-7-12 javascript(2) 第七组 刘昀航
@ 目录 2022-7-12学习 第七组 刘昀航 前情提要 一.for循环 二.for in循环 三.while 和 do...while循环 1.while do... while 四.内置函数 五 ...
- 2022-7-9 html 第七组 刘昀航
一.基础认知 1.1 认识网页 网页的组成: 文字.图片.音频.视频.超链接 网页背后的本质:前端程序员写的代码 前端的代码通过什么软件转换成用户眼中的页面:浏览器转化(解析和渲染) 1.2 5大 ...
- 2022-7-13 java_1 第七组 刘昀航
@ 目录 前言 一.一些基本的指令 二.java 1.java的三个版本 2.java特点 3.运行一个java程序 三.java的数据类型 1.java基本数据类型 2.强制转换的原理 3.八种基本 ...
- 2022-7-10 css 第七组 刘昀航
样式通常存储在样式表中(先定义样式表),再把样式表添加到html元素中 定义CSS样式的方式: 行内样式(内联样式) ·行内样式仅针对当前标签生效,如果当前的样式不需要复用,可以用行内样式 · ...
- 2022-7-11 javascript学习 第七组 刘昀航
JavaScript是什么? 编程语言,脚本语言,依赖于某种容器来运行. JS是运行在浏览器上的,可以帮助我们去控制页面. Vue.js react.js jquery.js an ...
- [对对子队]会议记录4.14(Scrum Meeting 5)
今天已完成的工作 刘子航 工作内容:设计第2,3关 相关issue:设计关卡2,3 吴昭邦 工作内容:制作场景,暂时解决了坐标错位问题 相关issue:实现游戏场景中的必要模型 何瑞 ...
- H - Ones
Description Given any integer 0 <= n <= 10000 not divisible by 2 or 5, some multiple of n is a ...
- 第06周-接口、内部类与Swing
1. 本周作业简评与建议 作业简评 Q1.覆盖clone需要:a.要implements标记接口 Cloneable接口.b.要区分浅拷贝与深拷贝.c.一般来说要调用super.clone,然后在此基 ...
- 第03周-Java作业评价
1.作业存在的问题 几大扣分点: 思维导图敷衍了事 -1 代码格式混乱 -2 无码云提交记录 -2 无PTA实验总结 -2 部分题目未完成. 格式问题:到现在还搞不清楚的,主要是态度问题.相关的教程 ...
随机推荐
- 树莓派开发笔记(十三):入手研华ADVANTECH工控树莓派UNO-220套件(二):安装rtc等驱动
前言 前面运行了系统,本篇是安装对应套装的驱动,使rtc等外设生效,树莓派本身是不带rtc外设的. UNO-220-P4N1AE 驱动下载 官方下载:https://www.advan ...
- socket模块和黏包问题
socket套接字简介 编写cs架构的程序 实现数据交互 OSI七层相当复杂 socket套接字是一门技术 socket模块>>>:提供了快捷方式 不需要自己处理每一层 " ...
- GIT速查手册
一.GIT 1.1 简单配置 git是版本控制系统,与svn不同的是git是分布式,svn是集中式 配置文件位置 # 配置文件 .git/config 当前仓库的配置文件 ~/.gitconfig 全 ...
- linux篇-linux面试题汇总
Linux经典面试题,看看你会几题? 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统 ...
- 基础篇:java GC 总结,建议收藏
垃圾标记算法 垃圾回收算法 major gc.mini gc.full gc.mixed gc 又是什么,怎么触发的 垃圾回收器的介绍 Safe Point 和 Safe Region 什么是 TLA ...
- yolov1学习笔记
yolov1学习笔记 yolov1将目标检测归为一个回归问题,具有real-time的特点.局限性是:对于群体性的小目标检测效果很差. 论文概括 本文重新构造目标检测作为一个回归问题. 直接输入图像到 ...
- 深入C++02:深入学习C++还必须掌握的基础
深入学习C++还必须掌握的基础 掌握形参带默认的函数 1.给默认值方向:从右向左给默认值: 2.调用效率:如果传默认值或者立即数(不需要从容器或内存取取的数字)的话都是直接将数字直接push进栈:没有 ...
- 牛客多校赛2K Keyboard Free
Description 给定 \(3\) 个同心圆,半径分别为 \(r1,r2,r3\) ,三个点分别随机分布在三个圆上,求这个三角形期望下的面积. Solution 首先可以固定 \(A\) 点,枚 ...
- Python数据分析--Numpy常用函数介绍(5)--Numpy中的相关性函数
摘要:NumPy中包含大量的函数,这些函数的设计初衷是能更方便地使用,掌握解这些函数,可以提升自己的工作效率.这些函数包括数组元素的选取和多项式运算等.下面通过实例进行详细了解. 前述通过对某公司股票 ...
- Docker权限 “Got permission denied while trying to connect to the Docker daemon socket at unix:///var/”
问题及解决办法 在普通用户下执行docker命令需要用sudo,没加sudo出现了下图所示的提示: 从上图看出,权限不足连接/var/run/docker.sock,我们看下这个文件: 可以看出,这个 ...