Java基础语法02——流程控制

流程控制:顺序结构、分支结构(if-else、switch-case)、循环结构(for、while、do-while)

  • 实现从键盘获取不同类型的变量——Scanner类 步骤:
  • 导包: import java.util.Scanner;
  • Scanner实例化: Scanner scan = new Scanner(System.in);
  • 调用Scanner的相关方法,来获取指定类型的变量:格式: Scanner.方法 String类型——next() int类型——nextInt() double类型——nextDouble()

分支结构1——if-else结构

三种形式:

if-else结构可以相互嵌套

【一旦满足,就会退出结构】

只有一个执行语句时,{}可以省略,但不建议省,容易出错

——>拓展:如何获取一个 随机数?[a,b]

​ 使用Math类下的random方法,产生的是double类型的数据,且范围为[0.0,1.0)

​ 公式: int m = (int)Math.random()*(a-b+1)+a;

分支结构2——switch-case结构

switch-case结构格式:

/*
switch(表达式)//不是条件表达式
    case 常量1:
        执行语句1;
        break;//非必须
    case 常量2:
        执行语句2;
        break;//非必须
    ······
    default:
        执行语句;
*/

循环结构1——for循环

  • 循环结构的四个部分:初始部分、循环条件部分、循环体部分、迭代条件部分
  • for循环的结构:
/*
for(初始;循环条件;迭代){
    循环体
}
//()里每一部分可以有多条语句
//执行过程:初始——循环条件(结果为boolean类型)——(true)循环体——迭代——循环条件判断——循环体——迭代——······
*/
//举例:输出5条HelloWorld语句
public class Demo{
    public static void main(String[] args){
        for(int i=1;i
  • break关键字的使用:遇到break,循环结束;跳出循环结构

循环结构2——while循环

while循环的结构

/*
初始
while(循环条件){
    循环体;
    迭代条件;//小心不要忘记,否则容易死循环
}
//执行过程:初始——循环条件(结果为boolean类型)——(true)循环体——迭代——循环条件判断——循环体——迭代——······
*/

循环结构3——do-while循环

do-while循环结构:

/*
初始
do{
    循环体;
    迭代条件;
}while(循环条件)
//执行过程略有不同:初始——循环体——迭代——循环条件——循环体——迭代——循环条件——······

//注意:do-while循环的循环体至少执行一次
*/

开发中使用前两种循环的情况比较多

——>拓展:最简单”无限循环格式”: while(true)for(;;) ——不知道循环次数是多少——可以通过break结束循环。

例题:从键盘输入多个不确定的整数,并输出正数和负数的个数,输入0时结束循环##

import java.util.Scanner;
public class Test1{
public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    int postivenumber = 0;
    int negtivenumber = 0;
    while(true){
        int num = scan.nextInt();
        if(num>0){
            postivenumber++;
        }else if(num

嵌套循环

  • 层数不会太多,一般不会超过三层
  • 将一个循环结构A声明在另一个循环结构B的循环体中,就构成了嵌套循环
  • 外层循环:B;内层循环:A
  • 说明:
  • 内层循环执行一遍,相当于外层循环执行一次
  • 假设外层循环需要执行m次,内层循环需要执行n次。此时,内层循环的循环体一共执行了m*n次
  • 技巧:外层循环控制行数,内层控制列数
//应用1:九九乘法表
public class Test1{
public static void main(String[] args){
    for(int i=1;i
/*应用2:输出100以内的质数(常见笔试题)
质数:(素数)只能被1和它本身整除的自然数【最小的质数2】
——2~这个数-1 都不能被这个数整除
*/
public class Test2{
public static void main(String[] args){
    boolean b = true;//标识i是否被j除尽,一旦除尽,立刻更改其值
    for(int i=2;i

break、continue关键字的使用

使用范围 循环中使用的作用 相同点 break 循环结构 结束当

循环 关键字后面不能声明执行语句 continue 循环结构 结束当

循环 关键字后面不能声明执行语句

//说明1
public class Test3{
public static void main(String[] args){
    for(int i=1;i
//说明2:在嵌套循环中,break(continue)作用于离关键字最近的一层循环;
//如果想要指定对某一层循环起作用,可以使用标签,例子如下:
public class Test1{
public static void main(String[] args){
    label:for(int i=1;i

Original: https://www.cnblogs.com/mseredipity/p/16064292.html
Author: 哆啦L
Title: Java基础语法02——流程控制

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571628/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 力扣35题搜索插入位置Q35SearchInsertPosition

    Q35SearchInsertPosition 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 …

    Java 2023年6月8日
    093
  • Nginx负载均衡NFS配置

    Nginx配置 在主站进行nginx配置 upstream nfstest { server 192.168.64.145:9575 weight=5; server 192.16…

    Java 2023年5月30日
    0103
  • java操作pdf(pdfbox+poi)你想要的这里都有

    说两句废话 本来我只是想把我的一个pdf文件,多余的地方删除掉,再把个别页面的内容改下(多余内容干掉~),然后打印出来,我想要的这些wps还有很多软件都有,但是… 参考…

    Java 2023年6月7日
    084
  • 分布式应用运行时Dapr

    Dapr为微软开源的一个用于 构建分布式应用的框架,Dapr为 分布式应用运行时(Distributed Application Runtime)的英文单词缩写;Dapr提供了分布…

    Java 2023年6月16日
    0158
  • InnoDB学习(三)之BinLog

    BinLog又称为二进制日志,是MySQL服务层的数据日志,MySQL所有的存储引擎都支持BinLog。BinLog记录了MySQL中的数据更新和可能导致数据更新的事件,可以用于主…

    Java 2023年6月8日
    096
  • 【Java面试】并发编程高频面试题,请你说一下你对Happens-Before的理解

    “请你说一下你对Happens-Before的理解”你听到这个问题的时候,知道怎么回答吗?大家好,我是Mic,一个工作了14年的Java程序员。并发编程是面…

    Java 2023年6月16日
    082
  • MYSQL调优

    Original: https://www.cnblogs.com/ladyM/p/12917883.htmlAuthor: GirlsBoyTitle: MYSQL调优

    Java 2023年6月13日
    066
  • OpenFeign生产者与消费者

    用到的VO package com.datang.api.vo; import java.util.List; /** * @author 顶风少年 * @date 2022/6/…

    Java 2023年6月8日
    089
  • 多线程顺序运行的 4 种方法,面试随便问!

    文章介绍4种方法,简单易懂,通过4个demo抛砖引玉。 通过 join()方法使当前线程”阻塞”,等待指定线程执行完毕后继续执行。 举例:在线程thread…

    Java 2023年5月29日
    092
  • Kafka

    1. Kafka简介 1.1 消息队列 1.1.1 消息队列简介 消息Message:通讯设备之间传递的数据 队列Queue:一种特殊的线性表(数据元素首尾相连),特殊之处在于只允…

    Java 2023年6月8日
    098
  • Spring Ioc源码分析系列–Bean实例化过程(二)

    这篇文章是给上篇填坑的,上篇分析到真正创建Bean的 createBean(beanName, mbd, args)就没有继续深入去分析了,绕得太深,说不清楚。那么这一篇,就续上这…

    Java 2023年6月8日
    069
  • go使用barcode库生成二维码并扫描其内容

    导入barcode包 使用barcode库生成二维码 这里复习一下defer关键字的主要用法:延迟执行,主要是关闭流时用到,在return之前执行,当有多个defer关键字时采用先…

    Java 2023年6月13日
    079
  • Java学习-第一部分-第三阶段-第三节:MySQL基础

    零基础学MySQL 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 一个问题 淘宝网,京东、微信,抖音都有各自的…

    Java 2023年6月15日
    091
  • Docker 命令自动补全?要的

    前言 不知道这个小伙伴有多久没用过 Docker 了, 突然对我说 Docker 命令怎么发生变化了 docker run … #变成了 docker container ru…

    Java 2023年6月5日
    0100
  • Springboot整合Redis简单应用

    依赖: application配置文件: 新建RedisConfig配置文件进行redis序列化配置: 对比较常用的数据查询操作增加redis缓存: 在进行更新或者删除操作时加上对…

    Java 2023年6月7日
    075
  • Java 内存模型

    《Java虚拟机规范》中曾试图定义一种”Java内存模型”(Java Memory Model,JMM)来 屏蔽各种硬件和操作系统的内存访问差异,以实现让J…

    Java 2023年5月29日
    082
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球