1.用户交互 Scanner

Scanner 对象:获取用户的输入

基本语法:Scanner s = new Scanner(System.in);

通过 Scanner 类的 next() 和 nextLine() 方法获取输入的字符串,在读取前一般使用 hasNext() 和 hasNextLine() 判断是否还有输入的数据。

next():

  1. 一定要读取到有效字符后才可以结束输入;
  2. 对输入有效字符之前遇到的空白,next() 方法会自动将其去掉;
  3. 只有输入有效字符后才将其后面输入的空白作为分割符或结束符;
  4. next() 不能得到带有空格的字符串。

nextLine():

  1. 以 Enter 为结束符,也就是说 nextLine() 方法返回的是输入回车之前的所有字符;
  2. 可用获得空白。

注意:此对象中还有其它的类型方法,如: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 选择结构

变量类型

  1. byte、short、int 或者 char
  2. 从 Java SE 7 以后,switch 支持字符串 String 类型了
  3. 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 流程控制的更多相关文章

  1. 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结

    038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...

  2. 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构

    037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...

  3. 036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构

    036 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 03 嵌套if结构 本文知识点:Java中的嵌套if结构 什么是嵌套if结构? 概念: 嵌套if结构 ...

  4. 035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构

    035 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 02 多重if结构 本文知识点:Java中的多重if结构 选择结构回顾 if选择结构 注意: 1.条 ...

  5. 034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述

    034 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 01 流程控制概述 本文知识点:Java中的流程控制相关概念的认识 三大流程控制语句结构的简介 顺序 ...

  6. 042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用——循环输出英文字母

    042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用--循环输出英文字母 本文知识点:案例演示while循环的使用2 ...

  7. Java流程控制练习--万年历

    Java流程控制练习--万年历 标签: Java入坑之旅 0x01. 打印倒三角和正三角 public static void main(String[] args) { // TODO Auto-g ...

  8. JAVA流程控制

    JAVA流程控制 example1: --输出九九乘法表 public class chengfabiao { public static void main (String[] args){     ...

  9. Java学习笔记之:Java流程控制

    一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...

  10. Java 流程控制

                                   Java    流程控制 Java 分支结构 - if...else/switch 顺序结构只能顺序执行,不能进行判断和选择,因此需要分支 ...

随机推荐

  1. Gaussian YOLOv3 : 对bbox预测值进行高斯建模输出不确定性,效果拔群 | ICCV 2019

    在自动驾驶中,检测模型的速度和准确率都很重要,出于这个原因,论文提出Gaussian YOLOv3.该算法在保持实时性的情况下,通过高斯建模.损失函数重建来学习bbox预测值的不确定性,从而提高准确率 ...

  2. CTFshow pwn49 wp

    PWN49 用ida打开我们发现是静态编译的,所以先要通过libc库来打是不可能的了,程序里面有一个栈溢出点,找一下有没有system函数,发现并没有 那么我们找一下有没有mprotect函数如果有这 ...

  3. #团,构造#洛谷 3524 [POI2011]IMP-Party

    题目 有一个 \(3n\) 个点的无向图,保证有一个大小为 \(2n\) 的团,输出一个大小为 \(n\) 的团 分析 每次选择两个不相连的点删掉,那么剩下的 \(n\) 个点一定是团, 因为每次至少 ...

  4. CSP2020-S 游记

    10.11 CSP-S1 自从国庆假期回到学校我申请停课, 从此开始了长达近一个的停课生活. 初赛也是有惊无险地过去了. 一出来发现自己仍旧是大考必败型选手, 对了答案发现我其实错了挺多的, 可能是因 ...

  5. 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel

    Python插入100万条数据到MySQL数据库 步骤一:导入所需模块和库 首先,我们需要导入 MySQL 连接器模块和 Faker 模块.MySQL 连接器模块用于连接到 MySQL 数据库,而 F ...

  6. 使用OHOS SDK构建libwebp

    参照OHOS IDE和SDK的安装方法配置好开发环境. 从github下载源码. 执行如下命令: git clone --depth=1 https://github.com/webmproject/ ...

  7. OpenHarmony 状态变量更改通知:@Watch 装饰器

    @Watch 应用于对状态变量的监听.如果开发者需要关注某个状态变量的值是否改变,可以使用 @Watch 为状态变量设置回调函数. 说明: 从 API version 9 开始,该装饰器支持在 Ark ...

  8. 探索“智”感生活,HMS Core线上Codelabs挑战赛第4期开始!

    HMS Core线上Codelabs挑战赛第4期正式开始!我们向所有实践力超强.创新力满满的开发者发出邀请,用你的超级"码"力,解锁更多应用价值! 生活里,我们被手机"秒 ...

  9. k8s之operator

    背景 数字经济的兴起推动了云计算.物联网.大数据行业的快速蓬勃发展,对数据中心提出了更高的要求,同时,用户对于数据库运维自动化的需求越来越高,数据库即服务的需求越来越强烈. 随着k8s的普及以及云原生 ...

  10. android虚拟机硬件加速问题

    前言 创建的android 虚拟机的如果我们选择x86,那么会出现需要硬件加速. 步骤 那么打开虚拟功能后可以进行安装,SDK Manager-> Extras->Intel Hardwa ...