04.Java 流程控制
1.用户交互 Scanner
Scanner 对象:获取用户的输入
基本语法:Scanner s = new Scanner(System.in);
通过 Scanner 类的 next() 和 nextLine() 方法获取输入的字符串,在读取前一般使用 hasNext() 和 hasNextLine() 判断是否还有输入的数据。
next():
- 一定要读取到有效字符后才可以结束输入;
- 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉;
- 只有输入有效字符后才将其后面输入的空白作为分割符或结束符;
- next() 不能得到带有空格的字符串。
nextLine():
- 以 Enter 为结束符,也就是说 nextLine() 方法返回的是输入回车之前的所有字符;
- 可用获得空白。
注意:此对象中还有其它的类型方法,如:nextInt()、hasNextInt()
Demo1.java
public class Demo1 {
public static void main(String[] args) {
// 创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用 next 方式接收");
// 判断用户有没有输入字符串
//if (scanner.hasNextLine())
if (scanner.hasNext()){
// 使用 next 方式接收
// String str = scanner.nextLine();
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}
// 凡是属于 IO 流的类,如果不关闭会一直占用资源,要养成好习惯用完就关掉
scanner.close();
}
}
2.顺序结构
除非特别说明,否则按顺序一行一行执行
3.选择结构
3.1.if 选择结构
语法:
if (条件1){
// 命令语句
} else if (条件2){
// 命令语句
} else if (条件3){
// 命令语句
} else{
// 命令语句
}
3.2.switch 选择结构
变量类型:
- byte、short、int 或者 char
- 从 Java SE 7 以后,switch 支持字符串 String 类型了
- case 标签必须为字符串常量或字面量(通过 hashCode 来对比)
语法:
switch(expression){
case value1 :
//语句
break; //可选
case value2 :
//语句
break; //可选
default :
//语句
}
支持字符串常量:
String name="小明";
switch(name){
case "小明" :
System.out.println("小明");
break;
case "小红" :
System.out.println("小红");
break;
default :
System.out.println("小江");
}
4.循环结构
4.1.while 循环
语法:
while(布尔表达式){// 只要表达式成立就一直循环
//循环内容
}
1到100的和:
int i = 0;
int sum = 0;
while(i<=100){
sum += i;
}
System.out.println("sum="+sum);
4.2.do...while 循环
语法:先执行一遍循环内容,再进行布尔表达式判断
do{
// 循环内容
} while(布尔表达式)
4.3.for 循环
语法:
for(初始化; 布尔表达式; 更新){
// 循环语句
}
计算 1-100 的和:
int sum;
for(int i=0; i <= 100; i++){
sum += i;
}
System.out.println("sum="+sum);
// 死循环:for(;;){}
九九乘法表:
for(int j = 1; j <= 9; j++){
for(int i = 1; i <= j; i++){
System.out.print(j+"*"+i+"="+(j*i)+"\t")
}
System.out.println();
}
4.3.增强 for 循环
语法:
int[] numbers = {10,20,30,40,50}
for(int x:numbers){// for(int i=0;i<numbers.length;i++)(sout(numbers[i]);)
System.out.println(x);
}
5.break & continue
break:跳出所有的循环
continue:跳出本次循环
goto 关键字:Java 中没有goto,但有一些 goto 的影子--带标签(指后面跟一个冒号的标识符,如:label:)的break和continue(不建议使用)
6.练习
打印三角形:
for(int i=0;i<=5;i++){
for(int j=5;j>=i;j--){
System,out.print(" ");
}
for(int j=1;j<=i;j++){
System,out.print("*");
}
for(int j=1;j<i;j++){
System,out.print("*");
}
System.out.println();
}
04.Java 流程控制的更多相关文章
- 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...
- 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构
037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...
- 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构
036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...
- 035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构
035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构 本文知识点:Java中的多重if结构 选择结构回顾 if选择结构 注意: 1.条 ...
- 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述
034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...
- 042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用——循环输出英文字母
042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用--循环输出英文字母 本文知识点:案例演示while循环的使用2 ...
- Java流程控制练习--万年历
Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...
- JAVA流程控制
JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){ ...
- Java学习笔记之:Java流程控制
一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...
- Java 流程控制
Java 流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...
随机推荐
- 做easyexcel遇到的问题数据库采用的mybatis-plus
导入坐标 <!-- easyexcel依赖--><dependency> <groupId>com.alibaba</groupId> <arti ...
- 英语文档之vivado界面
vivado英文界面 一.界面内容 图中就是vivado常用的界面. 二.常用窗口 首先是左侧的project manager:IP INTEGRATOR(IP 集成器),simulation(仿真) ...
- KingbaseES V8R6集群部署案例之---openEuler系统脚本部署故障
案例说明: 在openEuler系统下通过脚本方式部署KingbaseES V8R6集群,脚本执行过程中,加载vip失败.本次故障问题,主要是因为openEuler系统shell和脚本的不兼容引起. ...
- FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
FFmpeg内置了aac音频格式,在<FFmpeg开发实战:从零基础到短视频上线>一书的"5.2.2 Linux环境集成mp3lame"又介绍了如何给FFmpeg集 ...
- 正则表达式 (?<= 与 (?= 的区别
(?=pattern) 正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串.这是一个非获取匹配, 也就是说,该匹配不需要获取供以后使用.例如,"Windows(?=95|98 ...
- Base64编码的全面介绍
1. Base64的定义和作用 Base64是一种用64个字符表示二进制数据的编码方式,通常用于在网络传输中将二进制数据转换为可打印字符的形式.Base64编码后的数据由大小写字母.数字和特殊字符组成 ...
- .NET分布式Orleans - 9 - 贪吃蛇项目演示
首先看完成效果 一个玩家的效果 多个玩家的效果 源码地址 https://gitee.com/chesterdotchen/snake-with-orleans 项目介绍 Snake.Common项目 ...
- #分治#洛谷 5502 [JSOI2015]最大公约数
题目 分析 又是一道思维题,考虑用分治,选取左边或右边的基准尽量扩展长度,时间复杂度\(O(nlog_2n)\) 代码 #include <cstdio> #include <cct ...
- Windows Terminal的资料
Windows Terminal是微软Windows平台难得好用的工具. 由于工作内容的原因,需要打开多个CMD窗口.多个git bash窗口,并且在多个窗口间切换,因此命令行窗口支持多TAB的特性, ...
- 基于QUBO模型的多体分子对接
技术背景 本文分享内容来自于最新的一篇名为Multibody molecular docking on a quantum annealer的文章,这篇文章的核心思想,是使用QUBO(二次受限二元优化 ...