java入门二:java流程控制

2023-10-29

1、用户交互Scanner

java.util.Scanner是Java5的新特性,可以通过Scanner类来获取用户的输入
基本语法:Scanner s = new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取之前一般需要用hasNext()hasNextLine()判断是否还有输入的数据

next():
①一定要读取到有效字符后才可以结束输入
②对输入有效字符之前遇到的空白,next()方法会自动将其去掉
③只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
④next()不能得到带有空格的字符串

import java.util.Scanner;

public class Demo01 {
    public static void main(String [] args){
        // 创建一个扫描器的对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");
        // 判断用户有没有输入字符串
        if(scanner.hasNext()){
            // 使用next方式接收用户传入的参数
            String str = scanner.next();
            System.out.println("输入的内容为:"+str);
        }
        //凡是属于IO流的类,如果不关闭就会一直占用资源,所以一用完就要关掉,养成一个好习惯
        scanner.close();

    }
}

nextLine():
① 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
②可以获得空白

2、顺序结构

java的基本机构,除非特别指明,否则就按照顺序一句一句的执行,顺序结构是最简单的算法结构,自上而下依次执行

public class ShunXunDemo {
    public static void main(String[] args) {
        System.out.println(1);
        System.out.println(2);
        System.out.println(3);
        System.out.println(4);
        System.out.println(5);
    }
}

3、选择结构

①if单选择结构

if(布尔表达式){
如果布尔表达式为true将执行的语句
}

②if双选择结构

if(布尔表达式)
{如果布尔表达式为true将执行的语句}
else
{布尔表达式为false将执行的语句}

③if多选择结构

if(布尔表达式1){如果布尔表达式1为true将执行的语句}
else if(布尔表达式2){布尔表达式2为true将执行的语句}
else if(布尔表达式3){布尔表达式3为true将执行的语句}
else{如果以上布尔表达都不为true执行的代码}
import java.util.Scanner;

public class IfDemo03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int score = scanner.nextInt();
        if (score == 100) {
            System.out.println("满分");
        } else if (score < 100 && score > 90) {
            System.out.println("优秀");
        } else if (score < 90 && score > 60) {
            System.out.println("良好");
        } else if (score < 60 && score > 0) {
            System.out.println("不及格");
        } else {
            System.out.println("输入数据不合法");
        }
    }
}

④嵌套的if结构

if(布尔表达式1)
{if(布尔表达式2){语句1}
}

⑤switch多选择结构
switch case语句判断一个变量与一系列中的某个值是否相等,每个值称为一个分支

switch(expression){
case value:
// 语句
break;//可选
case value:
//语句
break;//可选
default://可选
// 语句

switch语句中的变量类型可以是:
byte、short、int或者char
从Java SE7开始Switch支持字符串String类型了
case标签必须为字符串常量或者字面量

}

public class SwitchDemo01 {
    public static void main(String[] args) {
        char grade = 'A';
        // case穿透 // switch就是去匹配一个值,不写brake就会发生case穿透
        switch(grade){
            case 'A':
                System.out.println("优秀");
                break; // 可选,如果不写他匹配到结果之后会把所有的结果匹配出来
            case 'B':
                System.out.println("良好");
                break;
            case 'C':
                System.out.println("及格");
                break;
            case 'D':
                System.out.println("不及格");
                break;
            default:
                System.out.println("未知等级");
        }
    }
}

4、循环结构

①while循环:最基本的循环

while(布尔表达式){
循环内容}
  1. 只要布尔值为true,循环就会一直执行下去
  2. 大多数情况会让循环停止下来,需要一个让表达式失效的方式来终止循环
  3. 少部分情况需要循环一直执行,比如服务器的请求响应监听,正常程序要避免死循环
public class WhileDemo03 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while(i<=100){
            sum = sum+ i ;
            i++;
        }
        System.out.println(sum);
    }
}

②do…while循环
对于while只有满足条件才能进入循环,有时候为了符合即使不满足条件,也至少执行一次,所以do…while语句就诞生了

do{//代码语句}while(布尔表达式)

③for循环
for循环是支持迭代的一种通用结构,是最有效、最灵活的循环结构

for(初始化;条件判断;迭代)

数字.for点击回车就会自动生成for语句

public class ForDemo01 {
    public static void main(String[] args) {
        int a = 1;// 初始化条件
        while(a<=100){//条件判断
            System.out.println(a); //循环体
            a += 2; // 迭代
        }
        System.out.println("while循环结束");

        for(int i=1;i<=100;i++){
            System.out.println(i);
        }
        System.out.println("for循环结束");
        // 最先执行初始化的步骤,可以声明一种类型,但可初始化一个或者多个循环的变量,也可以是空语句
        // 检测布尔表达的值,如果为true循环体就会被执行,如果为flase循环体就会终止
        // 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
        // 再次检测布尔表达式的值,循环执行上面的过程
        for (; ; ) {// 死循环
        }
    }
}

④在java5中引入了一种主要用于数组或集合的增强型for循环

for(声明语句:表达式)
{代码句子}

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与数组元素的值相等
表达式:表达式是要访问的数组名,或者返回值为数组的方法

public class ForDemo05 {
    public static void main(String[] args) {
        int [] numbers = {10,20,30,40,50};//定义了一个数组
        for(int i=0;i<5;i++){
            System.out.println(numbers[i]);
        }
        System.out.println("==============");
        // 遍历数组元素,把每一个值赋值给x
        for(int x:numbers){
            System.out.println(x);
        }
    }
}

5、break&continue

break在任何循环语句的主体部分,均可用break控制循环的流程,一般用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch中用)

public class BreakDemo {
    public static void main(String[] args) {
        int i=0;
        while(i<100){
            i++;
            System.out.println(i);
            if(i==30){
                break;
            }
        }
        System.out.println(123);
    }
}

continue语句用在循环体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定

public class ContinueDemo {
    public static void main(String[] args) {
        int i=0;
        while(i<100){
            i++;
            if(i%10==0){
                System.out.println();
                continue;
            }
            System.out.print(i);
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java入门二:java流程控制 的相关文章

  • 相关概念地址笔记

    公平锁与非公平锁 https www jianshu com p f584799f1c77 java socket编程https www cnblogs com mingforyou p 3258418 html java四种引用类型htt
  • RocketMQ解析

    文章目录 1 单机版消息中心 2 分布式消息中心 2 1 问题与解决 2 1 1 消息丢失的问题 2 1 2 同步落盘怎么才能快 2 1 3 消息堆积的问题 2 1 4 定时消息的实现 2 1 5 顺序消息的实现 2 1 6 分布式消息的实
  • Think in java书籍阅读小结

    一 博客说明 本篇博客为本人看完think in java这本书后 个人查漏补缺的一些知识点 记录下来作为笔记使用 二 变量初始化顺序 在一个类里 变量初始化的顺序是由变量在类内的定义顺序决定的 即使变量定义大量遍布于方法定义的后面 那些变
  • (java基础学习)异常

    1 基本概念 java语言中 将程序中发生的不正常情况称为 异常 开发过程中的语法错误和逻辑错误不是异常 2 异常事件分为两大类 1 Error 错误 2 Exception 1 Error 错误 java虚拟机无法解决的严重问题 如 JV
  • java入门二:java流程控制

    1 用户交互Scanner java util Scanner是Java5的新特性 可以通过Scanner类来获取用户的输入 基本语法 Scanner s new Scanner System in 通过Scanner类的next 与nex
  • java入门一:java语法基础

    1 注释 标识符 单行注释 多行注释 文字 文档注释 文字 注释不会被编译 写给程序员看 平时写代码一定写注释 方便别人看的懂你的代码 或者写久了自己忘了干嘛的 关键字 abstract assert boolean int class 不
  • java进阶一:java集合

    1 集合简介 集合和数组类似 都是储存元素的容器 数组像是静态容器 长度一旦创建就不能再改变 元素类型必须统一 只能通过下标去索引元素等 集合像是动态容器 集合的长度可以动态的改变 元素类型可以不一致 可以用某个映射的关系去索引元素等 ja
  • Android校招复习全书(1)-j2se

    一 九种基本数据类型的大小 以及他们的封装类 关于JAVA基本数据类型 名称 解释 长度 位 默认值 封装类 byte 字节 8 0 Byte shot 短整型 16 0 Short int 整型 32 0 Integer long 长整型
  • 关于java中File类的总结

    1 File类只是操作文件 不涉及内容 2 File类的重要方法 设置完整路径 public File String filename 删除文件 public boolean delete 判断文件是否存在 public boolean e
  • JAV学习Object类

    Obj类 首先我们要认识到 Object类是我们所有类的顶层父类 所有类都是直接或者间接的继承自他 我们可以将它new出来也就是格式 Object obj new Object 我们罗列出来objct类的常用方法然后再一一介绍 方法名 ob
  • Java中局部变量、静态变量、静态方法的有效范围与调用

    1 局部变量 定义 在成员方法中定义的变量称为局部变量 方法中的形参也可以作为局部变量 例 public void method1 n i均为局部变量 int n for int i 0 i lt 5 i System out printl
  • c# 中MD5.ComputeHash() aes加密,在Java和golang中的实现

    类似移植C 代码需求 需要加密效果一致 C 中使用了AesCryptoServiceProvider加密 文档链接 AesCryptoServiceProvider 类 下载里面代码在Visul Studio2019中可以针对原加密字符解密
  • JDK源码系列 & JAVA语言数据类型Byte

    目录 类的继承结构图 类的Diagram图 类 类的注释 源码分析 全局变量 静态内部类 构造方法 静态方法 parseByte 静态方法 valueOf 静态方法 toString 静态方法 hashCode 静态方法 decode 静态
  • Java基础学习之函数式编程Comsumer接口(JDK8)

    前言 从毕业到现在正好三年 高难度的项目做了不少 但是基础这个东西一段时间不接触就会忘得一干二净 话不多说 开始今天的学习 1 Consumer接口 接触过 消费者 生产者 模式的同学 肯定对这个单词不陌生 在java8函数式编程和lamb
  • Java学习(对象与类)——文档注释,生成JavaDoc文件

    目录 注释的插入 类注释 方法注释 字段注释 通用注释 包注释 生成帮助文档JavaDoc 注释的插入 javadoc实用工具从下面几项中抽取信息 模块 包 公共类和接口 公共的和受保护的字段 公共的和受保护的构造器及方法 每个文档注释 包
  • 30--子类对象的实例化过程

    在继承的操作中 对于子类的实例化也是有要求的 即子类对象在实例化之前必须首先调用父类中的构造方法 然后再调用子类自己的构造方法 实例1 定义父类 package com qwy bean public class Person privat
  • java入门四:数组

    1 数组概述 数组是最简单的数据结构 是相同类型数据的有序集合 数组描述的是相同类型的若干个数据 按照一定的先后次序排列组合而成的 数组中 每一个数据称作一个数组元素 每个数组元素可以通过一个下标来访问他们 2 数组的声明创建 首先必须声明
  • Java基础学习之函数式编程Predicate接口(JDK8)

    前言 今天继续来学习函数式编程接口之Predicate接口 1 上源码 package javax persistence criteria import java util List public interface Predicate
  • java入门六:java基础终章

    1 static关键字 静态变量和类一起加载 final修饰后的类无法被继承 2 抽象类 abstract修饰符可以用来修饰方法也可以修饰类 如果修饰方法 那么该方法就是抽象方法 如果修饰类 那么该类就是抽象类 抽象类中可以没有抽象方法 但
  • Java基础学习之并发篇:手写阻塞队列ArrayBlockingQueue

    学习目标 我们都知道在并发编程中 阻塞队列在多线程中的场景特别有用 比如在生产和消费者模型中 生产者生产数据到队列 队列满时需要阻塞线程 停止生产 消费者消费队列 对队列为空时阻塞线程停止消费 在Java中有提供不同场景的阻塞队列 那么接下

随机推荐

  • ng bootstrap css,ng-bootstrap: NG Bootstrap 是基于 Angular(非 Angular.js)开发的 Bootstrap CSS 框架的指令集...

    NG Bootstrap Angular directives specific to Bootstrap 4 Welcome to the Angular version of the Angular UI Bootstrap libra
  • MIPI接口

    接口 分辨率 说明 RGB 800 480以下 大部分AP均支持RGB接口 此类LCD在低端平板广泛使用 LVDS 1024 768及以上 主要通过转换芯片将RGB等专程LVDS来支持 少量AP直接集成 此类LCD目前在中高端平板和笔记本中
  • What does assigning ‘shift‘ to a variable mean?

    原文链接 https stackoverflow com questions 7082811 what does assigning shift to a variable mean 7082897 Example use strict m
  • 进程管理工具之Supervisor

    Supervisor是用Python 开发的一个client server服务 是 Linux Unix系统下的一个进程管理工具 不支持Windows系统 它可以很方便的监听 启动 停止 重启一个或多个进程 用Supervisor管理的进程
  • 傻瓜攻略(十七)——MATLAB实现SVM二分类之fitcsvm

    以下内容基于MATLAB官网的介绍文档 进行了一点个人的理解和整理 不算原创 但也不是单纯的翻译 具体内容缺斤少两的 想看具体的英文内容请点击链接fitcsvm MATLAB实现SVM二分类之fitcsvm fitcsvm 几个例子 Tra
  • 看完秒懂ICA(含MATLAB和python代码)

    绪论 独立成分分析ICA是一个在多领域被应用的基础算法 ICA是一个不定问题 没有确定解 所以存在各种不同先验假定下的求解算法 相比其他技术 ICA的开源代码不是很多 且存在黑魔法 有些步骤并没有在论文里提到 但没有这些步骤是无法得到正确结
  • WSL2 的docker里使用显卡的安装

    懒得看的话直接跳到结论 1 先根据这里https docs microsoft com zh cn windows wsl install win10 simplified installation for windows insiders
  • MySQL数据库设计总结

    阅读原文 更多技术干货 请访问腾云阁 规则1 一般情况可以选择MyISAM存储引擎 如果需要事务支持必须使用InnoDB存储引擎 注意 MyISAM存储引擎 B tree索引有一个很大的限制 参与一个索引的所有字段的长度之和不能超过1000
  • OCR识别引擎tesseract使用方法

    最近一直跟OCR打交道 学习了下google的OCR引擎TESSERACT 是个很好的识别工具 tesseract 3 0已支持版面分析 功能很强大 安装tesseract前可选择性地安装leptonica和libtiff 不过建议先安装这
  • 主板电源开关接口图解_主板跳线接法图解

    大家好 今天分享一篇来自装机吧官网 zhuangjiba com 的图文教程 大家有没有过兴奋的买齐了硬件 准备装机了 装到一半发现 哎呀 这机箱的主板跳线如何接呢 害怕接错一不小心就把主板和其他硬件给烧了咋办 其实这种情况小编以前自己装机
  • shell脚本中的花括号扩展

    shell脚本中的花括号扩展 在shell脚本中可以在花括号中使用一组以逗号分隔的字符串或者字符串序列来进行字符串扩展 最终输出的结果为以空格分隔的字符串 整数也可 root mao aliyunserver bin echo 1 10 1
  • OpenWrt 初始化(中文界面/挂载U盘/smb共享/分区/格式化)

    一 更换软件源 https mirrors tuna tsinghua edu cn openwrt 二 安装软件 中文界面 挂载U盘 smb共享 分区 格式化 网页终端 opkg update opkg install luci i18n
  • Module build failed: TypeError: Cannot read property ‘for‘ of undefined

    里面至少得有一个 确保每个页面只有一个标签 在这里插入图片描述 https img blog csdnimg cn 20210202230539530 png 然后就不报错了
  • 【转】详细解析电源滤波电容的选取与计算

    本文转载自电源联盟 电感的阻抗与频率成正比 电容的阻抗与频率成反比 所以 电感可以阻扼高频通过 电容可以阻扼低频通过 二者适当组合 就可过滤各种频率信号 如在整流电路中 将电容并在负载上或将电感串联在负载上 可滤去交流纹波 电容滤波属电压滤
  • 基于随机响应机制的本地差分隐私【谷歌】论文笔记

    RAPPOR Randomized Aggregatable Privacy Preserving Ordinal Response 论文阅读 写在前面的话 自己的理解 整理 攻击模型 注意事项 相关工作 总结 写在前面的话 这篇文章是我在
  • asyncio+requests个人笔记

    requests库结合asyncio 使用asyncio和requests库 由于request是同步的 会阻塞asyncio 所以为每个request请求都创建多一个事件轮询器 这边我理解是多一个事件轮询器对应一个多线程 去跑reques
  • AR互动技术是什么

    AR互动技术是什么 AR技术是属于对现实增强的技术 AR互动体验的互动性 创意性和高体验感的特点将成为商家和会展的选择 AR互动应用从普通的商城发展到科技馆 博物馆 甚至跨界到医疗 军事等方面 接下来由数字平原总结AR互动体验展示的优点在哪
  • Reinforcement Learning 强化学习(一)

    Task01 本次学习主要参照Datawhale开源学习及强化学习蘑菇书Easy RL 部分内容参考Shusen Wang的github开源项目DRL 第1章 强化学习基础 1 1 强化学习概述 强化学习 reinforcement lea
  • 概率统计——概率论与数理统计

    一 随机变量 1 1 概率 随机事件 A A A发生的可能性度量 称为 A A A发生的概率 记为 P
  • java入门二:java流程控制

    1 用户交互Scanner java util Scanner是Java5的新特性 可以通过Scanner类来获取用户的输入 基本语法 Scanner s new Scanner System in 通过Scanner类的next 与nex