@

一、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 第七组 刘昀航的更多相关文章

  1. 2022-7-12 javascript(2) 第七组 刘昀航

    @ 目录 2022-7-12学习 第七组 刘昀航 前情提要 一.for循环 二.for in循环 三.while 和 do...while循环 1.while do... while 四.内置函数 五 ...

  2. 2022-7-9 html 第七组 刘昀航

    ​ 一.基础认知 1.1 认识网页 网页的组成: 文字.图片.音频.视频.超链接 网页背后的本质:前端程序员写的代码 前端的代码通过什么软件转换成用户眼中的页面:浏览器转化(解析和渲染) 1.2 5大 ...

  3. 2022-7-13 java_1 第七组 刘昀航

    @ 目录 前言 一.一些基本的指令 二.java 1.java的三个版本 2.java特点 3.运行一个java程序 三.java的数据类型 1.java基本数据类型 2.强制转换的原理 3.八种基本 ...

  4. 2022-7-10 css 第七组 刘昀航

    ​ 样式通常存储在样式表中(先定义样式表),再把样式表添加到html元素中 定义CSS样式的方式: 行内样式(内联样式) ​ ·行内样式仅针对当前标签生效,如果当前的样式不需要复用,可以用行内样式 · ...

  5. 2022-7-11 javascript学习 第七组 刘昀航

    ​ JavaScript是什么? 编程语言,脚本语言,依赖于某种容器来运行. JS是运行在浏览器上的,可以帮助我们去控制页面. Vue.js   react.js    jquery.js    an ...

  6. [对对子队]会议记录4.14(Scrum Meeting 5)

    今天已完成的工作 刘子航 ​ 工作内容:设计第2,3关 ​ 相关issue:设计关卡2,3 吴昭邦 ​ 工作内容:制作场景,暂时解决了坐标错位问题 ​ 相关issue:实现游戏场景中的必要模型 何瑞 ...

  7. H - Ones

    Description Given any integer 0 <= n <= 10000 not divisible by 2 or 5, some multiple of n is a ...

  8. 第06周-接口、内部类与Swing

    1. 本周作业简评与建议 作业简评 Q1.覆盖clone需要:a.要implements标记接口 Cloneable接口.b.要区分浅拷贝与深拷贝.c.一般来说要调用super.clone,然后在此基 ...

  9. 第03周-Java作业评价

    1.作业存在的问题 几大扣分点: 思维导图敷衍了事 -1 代码格式混乱 -2 无码云提交记录 -2 无PTA实验总结 -2 部分题目未完成. 格式问题:到现在还搞不清楚的,主要是态度问题.相关的教程 ...

随机推荐

  1. [AcWing 796] 子矩阵的和

    点击查看代码 #include<iostream> using namespace std; const int N = 1e3 + 10; int a[N][N], s[N][N]; i ...

  2. Redis实现并发阻塞锁方案

    由于用户同时访问线上的下订单接口,导致在扣减库存时出现了异常,这是一个很典型的并发问题,本篇文章为解决并发问题而生,采用的技术为Redis锁机制+多线程的阻塞唤醒方法. 在实现Redis锁机制之前,我 ...

  3. redis 添加hash报错

    报错信息 127.0.0.1:6379> hset ii name ss (error) MISCONF Redis is configured to save RDB snapshots, b ...

  4. 图解 Git 工作原理

    此页图解 git 中的最常用命令.如果你稍微理解git的工作原理,这篇文章能够让你理解的更透彻. 基本用法 上面的四条命令在工作目录.暂存目录(也叫做索引)和仓库之间复制文件. git add fil ...

  5. k8s中应用GlusterFS类型StorageClass

    GlusterFS在Kubernetes中的应用 GlusterFS服务简介 GlusterFS是一个可扩展,分布式文件系统,集成来自多台服务器上的磁盘存储资源到单一全局命名空间,以提供共享文件存储. ...

  6. ElasticSearch7.3学习(二十四)----相关度评分机制详解

    1.算法介绍 relevance score(相关性分数) 算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度.Elasticsearch使用的是 term freque ...

  7. 运维:ITIL V3

    TIL 简史 在20 世纪80 年代末期,英国商务部(OGC,Office Government Commerce)发布了ITIL .OGC 最初的目标是通过应用IT 来提升政府业务的效率:目标是能够 ...

  8. 739. Daily Temperatures - LeetCode

    Question 739. Daily Temperatures Solution 题目大意:比今天温度还要高还需要几天 思路:笨方法实现,每次遍历未来几天,比今天温度高,就坐标减 Java实现: p ...

  9. linux篇-linux面试题汇总

    Linux经典面试题,看看你会几题? 1. 在Linux系统中,以 文件 方式访问设备 . 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统. 3. Linux文件系统 ...

  10. 理“ Druid 元数据”之乱

    vivo 互联网大数据团队-Zheng Xiaofeng 一.背景 Druid 是一个专为大型数据集上的高性能切片和 OLAP 分析而设计的数据存储系统. 由于Druid 能够同时提供离线和实时数据的 ...