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 部分题目未完成. 格式问题:到现在还搞不清楚的,主要是态度问题.相关的教程 ...
随机推荐
- 使用 Ansible 快速部署 HBase 集群
背景 出于数据安全的考虑,自研了一个低成本的时序数据存储系统,用于存储历史行情数据. 系统借鉴了 InfluxDB 的列存与压缩策略,并基于 HBase 实现了海量存储能力. 由于运维同事缺乏 Had ...
- 学习HTTP——HTTPS
前言 因为工作需要,需要用到大量的关于 HTTP 协议的知识,目前掌握的关于 HTTP 请求以及协议的知识都是零散的,打算针对知识盲区系统的学习一些,理清概念. 为什么会出现 HTTPS 因为 HTT ...
- 一行代码如何隐藏 Linux 进程?
开源Linux 长按二维码加关注~ 上一篇:IPv6技术白皮书(附PDF下载) 总有朋友问隐藏Linux进程的方法,我说你想隐藏到什么程度,是大隐于内核,还是小隐于用户.网上通篇论述的无外乎 hook ...
- BottomNavigationView点击刷新问题
BottomNavigationView点击刷新问题 问题: 项目中使用了BottomNavigationView作为底部导航栏. 点击item切换的时候发现会有闪烁现象出现. 原因: BottomN ...
- C# 编写一个简单易用的 Windows 截屏增强工具
半年前我开源了 DreamScene2 一个小而快并且功能强大的 Windows 动态桌面软件.有很多的人喜欢,这使我有了继续做开源的信心.这是我的第二个开源作品 ScreenshotEx 一个简单易 ...
- Base64隐写
0x00: 前言 Base64编码的作用: 将一些特殊的字符转换成常见的字符.特殊的字符可能是不可见字符或者是大于ascii码127的,将其变成常见的字符(在base64中为a~z A~Z 0~9 + ...
- 136. Single Number - LeetCode
Question 136. Single Number Solution 思路:构造一个map,遍历数组记录每个数出现的次数,再遍历map,取出出现次数为1的num public int single ...
- JavaScript数组操作常用方法
@ 目录 数组基础遍历方法. for for of for in 数组的基础操作方法. push:尾部追加元素 pop:尾部移出元素 unshift:头部追加元素 shift:头部移出元素 splic ...
- 好客租房1-React基础目标
学习目标 能够说出React是什么 掌握react的特点 掌握react的基本使用 能够使用react脚手架 学习目录 react概述 react基本使用 react脚手架
- iOS全埋点解决方案-数据存储
前言 SDK 需要把事件数据缓冲到本地,待符合一定策略再去同步数据. 一.数据存储策略 在 iOS 应用程序中,从 "数据缓冲在哪里" 这个纬度看,缓冲一般分两种类型. 内 ...