@

一、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 756] 蛇形矩阵

    点击查看代码 #include<iostream> using namespace std; const int N = 110; int n, m; int dx[] = {-1, 0, ...

  2. IIS发布Https和Https的问题

    asp.net调试页面的时候遇到一个问题,我喜欢右键点击在浏览器查看页面,打开的页面默认是https的,其实iis会同时生成http和https两种页面,但是我懒得每次去点.问题是页面中测试接口是ht ...

  3. c++:-7

    上一节主要学习C++中的函数模版.数据结构以及排序查找操作:c++:-6,本节学习C++的范型程序设计和STL: 范型程序设计 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通 ...

  4. 一探 Vue 数据响应式原理

    一探 Vue 数据响应式原理 本文写于 2020 年 8 月 5 日 相信在很多新人第一次使用 Vue 这种框架的时候,就会被其修改数据便自动更新视图的操作所震撼. Vue 的文档中也这么写道: Vu ...

  5. MySQL主从配置及haproxy和keepalived搭建

    本篇文章主要介绍如何搭建MySQL主主配置.主从配置.haproxy.keepalived,已经搭建过程中的一些问题.本次运行环境是在docker中,也会介绍一些docker的知识 docker 小知 ...

  6. 1.Spring开发环境搭建——intellj

    1.在intellj中新建项目,选择JDK版本(1.8版本) 2.选择相关信息填写,注意Java版本要和上面步骤选择的版本一致. 3.选择springBoot版本,勾选Spring Web选项. 4. ...

  7. 876. Middle of the Linked List - LeetCode

    Question 876. Middle of the Linked List Solution 题目大意:求链表的中间节点 思路:构造两个节点,遍历链接,一个每次走一步,另一个每次走两步,一个遍历完 ...

  8. 用 notion 管理信用卡与花呗

    用 notion 管理信用卡与花呗 Notion原文,排版更佳 概述 不需要提醒功能和安卓用户可以忽略Scriptable和快捷指令 app的设置 Notion 建立信用卡表格,录入信用卡基本信息,自 ...

  9. CentOS7 单节点和多节点 HPL测试

    前置工作:安装OpenBLAS; 安装Mpich (可参考首页博客) 官网下载压缩包到/opt目录 cd /opt && wget https://www.netlib.org/ben ...

  10. vue大型电商项目尚品汇(前台篇)day05

    紧急更新第二弹,然后就剩下最后一弹,也就是整个前台的项目 一.购物车 1.加入购物车(新知识点) 加入到购物车是需要接口操作的,因为我们需要将用户的加入到购物车的保存到服务器数据库,你的账号后面才会在 ...