疯狂Java基础Day2
巩固Java流程控制的学习。。。
一、用户交互Scanner
通过Scanner类获取用户的输入
import java.util.Scanner;
public class Demo1 {
public static void main(String[] args) {
//创建一个扫描对象,用于接收键盘数据
Scanner sc = new Scanner(System.in); //hello world
System.out.println("使用next方式接收:");
//判断用户有没有字符串输入
if (sc.hasNext()){
//用next方式接收
String s = sc.next(); //hello
System.out.println("输出内容为:"+s);
}
sc.close(); //凡是属于IO流的类如果不关掉就一直会占用资源
}
}
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
//创建一个扫描对象,用于接收键盘数据
Scanner sc = new Scanner(System.in); //hello world
System.out.println("使用nextLine方式接收:");
//判断用户有没有字符串输入
if (sc.hasNext()){
//用next方式接收
String s = sc.nextLine(); //hello world
System.out.println("输出内容为:"+s);
}
sc.close(); //凡是属于IO流的类如果不关掉就一直会占用资源
}
}
对于next()和nextLine():后者更常用
- next()
- 一定要读到有效字符串后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为结束符
- next()不能得到带有空格的字符串
- nextLine()
- 返回输入回车之前的所有字符
- 可以得到空白
小案例:输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并执行结果。
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//和
double sum = 0.0;
//计算输入了多少个数字
int n = 0;
//通过循环判断是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()) {
double x = scanner.nextDouble();
n++;
sum = sum+x;
}
System.out.println(n+"个数的和为:"+sum);
System.out.println(n+"个数的平均值为:"+(sum/n));
scanner.close();
}
}
二、顺序结构
按顺序一句一句执行,自上而下
三、选择结构
1、if单选择结构
if(布尔表达式) {
//如果布尔表达式为true将执行的语句
}
2、if双选择结构
if(布尔表达式) {
//如果布尔表达式为true将执行的语句
}else {
//如果布尔表达式为false将执行的语句
}
3、if多选择结构
if(布尔表达式 1) {
//如果布尔表达式 1的值为true将执行的语句
}else if(布尔表达式 2) {
//如果布尔表达式 2的值为false将执行的语句
}else if(布尔表达式 3) {
//如果布尔表达式 3的值为false将执行的语句
}else {
//如果以上布尔表达式都不为true将执行的语句
}
4、if嵌套结构
if(布尔表达式 1) {
//如果布尔表达式 1的值为true执行的语句
if(布尔表达式 2) {
//如果布尔表达式 2的值为true执行的语句
}
}
5、switch选择结构
switch(expression) {
case value:
//语句
break; //可选
case value:
//语句
break; //可选
//任意数量case语句
default: //可选
//语句
}
case具有穿透能力,switch的优势在于:可以匹配一个具体的值
//理解case的穿透力
public class Demo5 {
public static void main(String[] args) {
char grade = 'C';
switch (grade) {
case 'A':
System.out.println("满分");
case 'B':
System.out.println("优秀");
case 'C':
System.out.println("及格");
case 'D':
System.out.println("不及格");
default:
System.out.println("未知");
}
}
}
//及格
//不及格
//未知
通过输出结果发现,case后的结果全部输出,为了避免该种现象,我们只需加上break
注意:jdk7后,switch支持字符串String类型
public class SwitchDemo {
public static void main(String[] args) {
//须知:字符的本质还是数字
//反编译即可发现
String fruit = "大西瓜";
switch (fruit) {
case "大西瓜":
System.out.println("大西瓜");
break;
case "草莓":
System.out.println("草莓");
break;
case "菠萝":
System.out.println("菠萝");
break;
default:
System.out.println("哈密瓜");
}
}
}
反编译一下:

四、循环结构
1、while循环
while(布尔表达式) {
//循环内容
}
大多数情况下需要一个表达式失效的方式来结束循环
2、dowhile循环
do {
//代码语句
}while(布尔表达式)
while和do...while的区别
- do...while循环至少会执行一次
- while先判断后执行,do...while先执行后判断
3、for循环
for(初始化;布尔表达式;更新) {
//代码语句
}
最有效、最灵活的循环结构!
关于计算1+2+...+100=?的不同解法:
public class WhileDemo {
public static void main(String[] args) {
int i = 0;
int sum = 0;
while (i<=100) {
sum = sum+i;
i++;
}
System.out.println(sum);
}
}
public class DoWhileDemo {
public static void main(String[] args) {
int i = 0;
int sum = 0;
do {
sum = sum+i;
i++;
}while (i<=100);
System.out.println(sum);
}
}
public class ForDemo {
public static void main(String[] args) {
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum = sum+i;
}
System.out.println(sum);
}
}
4、增强for循环
for(声明语句:表达式) {
//代码语句
}
遍历用法:
public class EnhanceFor {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5};
//普通for
for (int i = 0; i < 5; i++) {
System.out.println(arr[i]);
}
System.out.println("=====================");
//增强for
for (int x:arr
) {
System.out.println(x);
}
}
}
5、break与continue
break用于强行退出循环
continue用于终止某次循环
疯狂Java基础Day2的更多相关文章
- java基础-day2
第02天 java基础知识 今日内容介绍 u Eclipse的安装.配置及使用 u 运算符 u 键盘录入 第1章 Eclipse开发工具 1.1 Eclipse概述和安装 Eclipse是一个I ...
- 疯狂Java基础Day1
--每过一遍基础,都是一次提升! 太多遗忘了,慢慢补... 推一个Java学习教程--->b站搜:狂神说Java系列(排序完毕) 推荐原因:讲的不错,会涉及到底层,也会讲讲面试. 一.注释 主要 ...
- java基础day2
Java标识符命名规则: 标识符由字母,下划线“_”.美元符号$或数字组成/ 不能以数字开头 区分大小写 不能是关键字 “ 见名知意” 约定俗成的规则 类名:首字母大写变量名:除第一个单词外小写,其他 ...
- udp协议基础(转自疯狂java讲义)
第17章 网络编程 17.4 基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发 ...
- Java基础进阶整理
Java学习笔记整理 本文档是我个人整理的,首先是想通过完成本文档更加扎实自己的基础加强对java语言的理解,然后就是想给入了门的同志们做下贡献. 当然,本文档主要是对java语言基础(当然还有很多基 ...
- 《疯狂Java讲义》(一) ---- 关于学习Java的反思
"听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...
- 《疯狂java讲义》笔记 1-5章
1.编译语言和解释语言理解,摘自李刚老师的<疯狂Java讲义>第三版: 就是说,Java和.net都是编译型有事解释型语言.编译型就是根据不同平台编译成不同的可执行机器码,编译过程中会进行 ...
- 《疯狂java讲义》读后感
<疯狂java讲义·第三版>,全书共851页,18章. 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向 ...
- 如何学习java?Java基础知识点分享
面对未知的行业,人们的第一反应应该是:拒绝踏入.因为学习真的是一个痛苦的过程.想要真正了解一个行业,熟知一个行业,并熟练掌握某一技术,是真的需要时间和精力的.在学习Java基础知识期间,千锋小编疯狂为 ...
随机推荐
- 最全Windows版本jemalloc库(5.2.1)及其使用:包含动态库和静态库、x86版本和x64版本、debug版本和release版本
编写服务器程序时,需要频繁的申请和释放内存,长时间运行会产生大量的内存碎片,这就导致即使当前系统中的闲置内存还足够多,但也无法申请到大的连续可用的内存块,因为此时的物理内存已经千疮百孔像个马蜂窝.此外 ...
- PHPCMS V9轻松完成WAP手机网站搭建全教程
---恢复内容开始--- 应用PHPCMS V9轻松完成WAP手机网站搭建全教程 用PHPCMS最新发布的V9搭建了PHPCMS研究中心网站(http://www.17huiyi.net)完成后,有用 ...
- javascript 面向对象 模块
* module 完成函数 createModule,调用之后满足如下要求:1.返回一个对象2.对象的 greeting 属性值等于 str1, name 属性值等于 str23.对象存在一个 say ...
- php 解决返回数据 数字 变成科学计数法后转换问题
链接 https://blog.csdn.net/liuxin_0725/article/details/81514961 问题 id int型 数字过长,json_decode的时候已经转成科学计数 ...
- JDBC连接mariadb时使用依赖
问题描述:最近在尝试使用mariadb,使用idea开发,在使用jdbc连接数据库的时候,一般会用到driver,user,pwd,url,使用mysql的例子太多了,也有很多详细的教程,但是现在尝试 ...
- FastAPI(45)- JSONResponse
背景 创建 FastAPI 路径操作函数时,通常可以从中返回任何数据:字典.列表.Pydantic 模型.数据库模型等 默认情况下,FastAPI 会使用 jsonable_encoder 自动将该返 ...
- Java - 你的 Java 代码有这些坏味道吗?
列举一些 Java 开发中常见的"不良实践",来源于代码扫描(https://github.com/pmd/pmd),和诸君一起学习参考: 1 - 关闭资源 CloseResour ...
- 题解 AVL 树
link Description 给出一个 \(n\) 个点的 AVL 树,求保留 \(k\) 个点使得字典序最小. \(n\le 5\times 10^5\) Solution 因为我很 sb ,所 ...
- 从 MVC 到使用 ASP.NET Core 6.0 的最小 API
从 MVC 到使用 ASP.NET Core 6.0 的最小 API https://benfoster.io/blog/mvc-to-minimal-apis-aspnet-6/ 2007 年,随着 ...
- HCNP Routing&Switching之BGP邻居建立条件、优化和认证
前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...