java基础:流程控制

news2024/12/28 3:20:13

一、用户交互Scanner

(一)基础

1、概念:基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner 是 Java5的新特征,我们可以通过Scanner类来获取用户的输入。
2、基本语法

Scanner s = new Scanner(System in);
//通过Scanner类的next()与nextLine()方法获取输入的字符串
//在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

(二)hasNext()与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);
        }

        //用完之后记得关掉,要节约资源
        scanner.close();
    }
}

输出结果:
在这里插入图片描述

(三)hasNext()与hasNextLine()

import java.util.Scanner;
public class Demo02 {
    public static void main(String[] args) {
        //从键盘接收数据
        Scanner scanner = new Scanner(System.in);

        System.out.println("使用nextLine方式接收:");

        //判断是否还有输入
        if(scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出的内容为:" + str);
        }
    }
}

在这里插入图片描述

(四)常用方法

方法描述
boolean hasNext()检查扫描器是否还有更多的输入。
boolean hasNextLine()检查扫描器是否还有另一行。
boolean hasNextInt()检查扫描器的下一个标记是否是一个整数。
boolean hasNextDouble()检查扫描器的下一个标记是否是一个双精度浮点数。
String nextLine()此扫描器读取的下一个完整的行。
String next()返回此扫描器的下一个完整标记。
int nextInt()将下一个完整的标记扫描为一个 int。
double nextDouble()将扫描器的下一个标记扫描为一个 double。
void close()关闭此扫描器。如果此扫描器已关闭,则调用此方法不会执行任何操作。
void useDelimiter(Pattern pattern)设置此扫描器使用的分隔符模式。
void useDelimiter(String pattern)设置此扫描器使用的分隔符。
boolean hasNext(Pattern pattern)检查是否还有下一个与指定模式匹配的输入项。
boolean hasNext(String pattern)检查是否还有下一个与指定字符串模式匹配的输入项。
void skip(Pattern pattern)跳过与模式匹配的输入。
void skip(String pattern)跳过与给定字符串模式匹配的输入。
Locale locale()返回此扫描器的当前区域设置。
void useLocale(Locale locale)设置此扫描器的区域设置。
IOException ioException()如果此扫描器的输入流被关闭或发生其他 I/O 错误,则返回导致最近一次 I/O 异常的 IOException。

二、顺序结构

java中最基本的结构,除非特别指明,否则就按照顺序一句一句执行,顺序结构是最简单的算法结构。语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。

三、选择结构

(一)if选择结构

先判断是否可行,再去执行
语法:

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

(二)if双选择结构

语法

if(布尔表达式){
//如果布尔表达式的值为true时执行
}else{
//如果布尔表达式的值为false时执行
}

(三)if多选择结构

真实的情况不止是或者不是两种,比如成绩等级判断,会有优秀,良好,合格,不合格等,所以我们需要用到多选择结构。

if(布尔表达式 1){
//如果布尔表达式1的值为true就执行
}else if(布尔表达式 2){
//如果布尔表达式1的值为true就执行
}else if(布尔表达式 3){
//如果布尔表达式3的值为true就执行
}else{
//以上布尔表达式的均不为true时执行
}

(四)嵌套的if结构

if(布尔表达式 1){
//如果布尔表达式1的值为true就执行
if(布尔表达式 2){
//既满足布尔表达式1又满足布尔表达式2时执行
}
}

(五)switch多选择结构

switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。

switch(expression){
case value :
//执行
break;//可不用
case value :
//执行
break;//可不用
}

四、循环结构

(一)while循环

//只要布尔表达式为真,循环会一直执行
whilw(布尔表达式){
//循环内容
}

(二)do…while循环

do{
//执行
}while(布尔表达式);

与while的区别:
①while先判断后执行,do…while先执行后判断
②do…while总是保证循环至少执行一次,while不能保证

(三)for循环

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环执行的次数是在执行前就确定的。语法格式如下:

for(初始化;布尔表达式;迭代更新){
//执行
}

增强for循环:java5中引入,主要用于数组和集合的增强型for循环

for(声明语句:表达式)
{
//代码语句
}
在这里插入图片描述

(四)实例:打印九九乘法表

public class Demo3 {
    public static void main(String[] args) {
        for(int j=1;j<=9;j++){
            for (int i = 1;i<=j;i++){
                System.out.print(j + "*" + i + "=" +(j*i) + "\t");
                //注意print和println的区别
            }
            System.out.println( );
        }
    }
}

结果:
在这里插入图片描述

五、break continue

break:在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)
continue:用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

六、建项目相关

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建成功后就在javaSE文件下多了scanner模块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1889778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL安装与环境配置

1.打开安装程序 2.默认配置&#xff0c;如下二三图 3.配置密码 4.等待安装完毕 5.检查 6.配置环境变量 7.从控制台登录检测

Let‘s Encrypt 申请免费 SSL 证书(每隔60天自动更新证书)

文章目录 官网文档简介安装 Nginxacme.sh生成证书智能化生成证书 安装证书查看已安装证书更新证书 官网 https://letsencrypt.org/zh-cn/ 文档 https://letsencrypt.org/zh-cn/docs/ 简介 Let’s Encrypt 是一个非营利组织提供的免费SSL/TLS证书颁发机构&#xff0c;旨在促…

Vue2和Vue3的区别Vue3的组合式API

一、Vue2和Vue3的区别 1、创建方式的不同&#xff1a; &#xff08;1&#xff09;、vue2:是一个构造函数&#xff0c;通过该构造函数创建一个Vue实例 new Vue({})&#xff08;2&#xff09;、Vue3:是一个对象。并通过该对象的createApp()方法&#xff0c;创建一个vue实例。 Vue…

X86 +PC104+支持WinCE5.0,WinCE6.0,DOS,Win2000,WinXP, Linux,QNX等操作系统,工业控制板卡定制

Celeron N2807 PC104模块 规格产品类型PC/104 主板芯片组SOCCPUIntel Celeron N2807 1.58 GHz内存板载2GB DDR3L双通道内存BIOSAMI 显示 L V D S 18/24-bit&#xff0c;VGA L V D S 支持最大分辨率为 1366768&#xff0c;VGA 支持最大分辨率为20481024 支持双独立显示存储 1Min…

软考《信息系统运行管理员》-2.3信息系统运维的外包

2.3信息系统运维的外包 信息系统运维外包的概念/模式 也称为信息系统代维。是指信息系统使用单位将全部或一部分的信息系统维护服务工作&#xff0c;按照规定的维护服务要求&#xff0c;外包委托给专业公司管理。 完全外包运维模式部分外包模式 信息系统运维外包的好处 有利…

告别PS修图,设计师都在用的AI抠图工具

引言 大家好&#xff01;如果你是美工或设计师&#xff0c;肯定深知Photoshop修图的繁琐和耗时。现在有一款超方便的工具&#xff0c;让你摆脱这些问题——千鹿设计助手。它不仅是个抠图工具&#xff0c;还能通过先进的AI技术&#xff0c;让抠图变得简单快速&#xff0c;让你专…

向量数据库:faiss的常用三种数据索引方式(IndexFlatL2,IndexIVFFlat,IndexIVFPQ)的使用和持久化+索引融合的实现及库函数解读

常用的三种索引方式 Faiss 中有常用的三种索引方式&#xff1a;IndexFlatL2、IndexIVFFlat 和 IndexIVFPQ。 1.IndexFlatL2 - 暴力检索L2&#xff1a; 使用欧氏距离&#xff08;L2&#xff09;进行精确检索。适用于较小规模的数据集&#xff0c;采用暴力检索的方式&#xff0…

基于YOLOv5的人脸关键点检测(附代码)

人脸关键点检测项目说明 本项目的实现主要依靠两个算法&#xff1a;yolov5目标检测和resnet人脸关键点算法。 其中目标检测算法为人脸关键点检测算法的前置算法&#xff0c;使用目标检测算法将人脸信息进行提取(起到前景与背景的分离)&#xff0c;然后再对box内的人脸信息进行…

AI人才争夺战:巨头眼中的产品经理必备技能

前言 在人工智能的浪潮下&#xff0c;BAT等一线互联网企业纷纷加码布局&#xff0c;对AI领域的人才需求空前高涨。然而&#xff0c;要在众多求职者中脱颖而出&#xff0c;成为企业眼中的人才&#xff0c;不仅需要深厚的产品功底&#xff0c;更要具备对AI的深刻理解和应用能力。…

【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(2)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

8625 火车上的无奈

这个问题可以通过计数来解决。对于每个case&#xff0c;我们可以计算出F和M的数量。如果F和M的数量相等&#xff0c;那么就可以形成一个环&#xff0c;否则就不能。 以下是一个C的解决方案&#xff1a; #include <iostream> #include <string>using namespace st…

SQL语句(DML)

DML英文全称是Data Manipulation Language&#xff08;数据操作语言&#xff09;&#xff0c;用来对数据库中表的数据记录进行增删改等操作 DML-添加数据 insert into employee(id, workno, name, gender, age, idcard) values (1,1,Itcast,男,10,123456789012345678);select *…

Nginx详解-安装配置等

目录 一、引言 1.1 代理问题 1.2 负载均衡问题 1.3 资源优化 1.4 Nginx处理 二、Nginx概述 三、Nginx的安装 3.1 安装Nginx 3.2 Nginx的配置文件 四、Nginx的反向代理【重点】 4.1 正向代理和反向代理介绍 4.2 基于Nginx实现反向代理 4.3 关于Nginx的location路径…

Qt时间日期处理与定时器使用总结

一、日期时间数据 1.QTime 用于存储和操作时间数据的类&#xff0c;其中包括小时(h)、分钟(m)、秒(s)、毫秒(ms)。函数定义如下&#xff1a; //注&#xff1a;秒(s)和毫秒(ms)有默认值0 QTime::QTime(int h, int m, int s 0, int ms 0) 若无须初始化时间数据&#xff0c;可…

【新奇E100-开发记录】

新奇E100-开发记录 ■ 环境■ 编译器■ Ubuntu主机环境需要安装如下工具■ mips32R1工具链&#xff08;toolchain &#xff09;■ defconfig■ dts的选择■ 全局编译■■ ■ 环境 ■ 编译器 ■ Ubuntu主机环境需要安装如下工具 shell $ sudo apt install git $ sudo apt ins…

Protocol Buffers语言特性 (proto 3)

定义消息类型 首先让我们看一个非常简单的例子。假设您想要定义一个搜索请求消息格式&#xff0c;其中每个搜索请求都有一个查询字符串、您感兴趣的特定结果页面以及每个页面的多个结果。下面是用于定义消息类型的.proto文件。 syntax "proto3";message SearchRequ…

Docker学习笔记(二)镜像、容器、仓库相关命令操作

一、docker镜像操作 列出镜像列表 我们可以使用 docker images 来列出本地主机上的镜像。 各个选项说明: REPOSITORY&#xff1a;表示镜像的仓库源 TAG&#xff1a;镜像的标签 IMAGE ID&#xff1a;镜像ID CREATED&#xff1a;镜像创建时间 SIZE&#xff1a;镜像大小 查…

Linux上搭建邮件服务

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 Linux上搭建邮件服务 前言电子邮件的工作原理和基本组成部分1. 电子邮件的工作原理2. 电子邮件的…

imx6ull/linux应用编程学习(7)在LCD上显示文字

在linux中&#xff0c;确实可以像裸机一样自己取模、自己写函数打点显示&#xff0c;但是效率很低&#xff0c;不能满足多文字显示&#xff0c;在Linux 系统中&#xff0c; 字体文件通常会放在/usr/share/fonts 目录下&#xff0c;有了字体文件之后&#xff0c;我们就不需要再对…

手把手edusrc漏洞挖掘和github信息收集

0x1 前言 这里主要还是介绍下新手入门edusrc漏洞挖掘以及在漏洞挖掘的过程中信息收集的部分哈&#xff01;&#xff08;主要给小白看的&#xff0c;大佬就当看个热闹了&#xff09;下面的话我将以好几个不同的方式来给大家介绍下edusrc入门的漏洞挖掘手法以及利用github信息收…