【系列02】Java流程控制 scanner 选择结构 循环结构语句使用 [有目录]

news2024/11/19 3:48:20

Scanner输入

Next和NextLine区别

NextLine 用的会多点 因为Next遇到空格就断开了

next语法使用

package com.SunAo.scanner;
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()==true){
            String str=scanner.next();
            System.out.println("输出的内容为:"+str);
        }
        //使用IO流的类如果不关闭会一直占用资源,要养成良好习惯
        scanner.close();
    }
}
  • 语法

    if(scanner.hasNext()==true) 等于 if(scanner.hasNext())

    true可以省略

  • 关闭输入

    scanner.close();

    使用IO流的类如果不关闭会一直占用资源,要养成良好习惯

  • 测试输入hello world! 输出为 hello

nextline语法使用

package com.SunAo.scanner;

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);
        }
        scanner.close();
    }
}
  • 输入hello world!输出hello world!

  • 主要是这一行的区别

    if (scanner.hasNextLine())

Scanner升级

Scanner的使用

package com.SunAo.scanner;
import java.util.Scanner;
public class Demo03
{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i=0;
        float f=0.0f;
        System.out.println("请输入整数");
        //如果..那么..
        if(scanner.hasNextInt()){
            i = scanner.nextInt();
            System.out.println("整数数据:"+i);
        }else{
            System.out.println("输入的不是整数数据!");
        }
        System.out.printl n("请输入小数");
        //如果..那么..
        if(scanner.hasNextFloat()){
            f = scanner.nextFloat();
            System.out.println("小数数据:"+f);
        }else{
            System.out.println("输入的不是小数数据!");
        }
        scanner.close();
    }
}

题目练习

  • 我们可以输入多个数字,并且求其总和和平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并且输出执行结果
package com.SunAo.scanner;
import java.util.Scanner;
public class Demo04 {
    public static void main(String[] args) {
        //我们可以输入多个数字,并且求其总和和平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并且输出执行结果
        Scanner scanner=new Scanner(System.in);
        //和
        double sum=0;
        //统计输入多少数字
        int m=0;
        System.out.println("请输入");
        //通过while语句进行判断是否还有输入,并且在里面每一次进行求和和统计
        while(scanner.hasNextDouble()){
            double x= scanner.nextDouble();
            ++m;
            sum=sum+x;
        }
        System.out.println(m+"个数的和是"+sum);
        System.out.println(m+"个数的平均数是"+(sum/m));
        scanner.close();

} }

顺序结构

  • 顺序结构就是从上到下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sGO37GUc-1673511790593)(C:/Users/%E5%AD%99%E5%A5%A5/AppData/Roaming/Typora/typora-user-images/image-20230111212336629.png)]

选择结构

if判断语句的使用

if单选择结构

  • 判断输入数据是否与要求数据相同相同则返回这个数据,不同则返回end
package com.SunAo.struct;
import java.util.Scanner;
public class IfDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入一个内容");
        String s=scanner.nextLine();
        //判断字符串是否相等
        if (s.equals("Hello"))
            System.out.println(s);
        else{
            System.out.println("End");
        }
        scanner.close();
    }
}
  • 考试成绩大于60则及格否则不及格
package com.SunAo.struct;
import java.util.Scanner;
//考试成绩大于60则及格否则不及格
public class IfDemo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("其输入成绩");
        int score=scanner.nextInt();
        if(score>60)
            System.out.println("及格");
        else
            System.out.println("不及格");
        scanner.close();
    }
}

语法格式

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

if多选择结构

  • 判断成绩
package com.SunAo.struct;

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 >= 80)
            System.out.println("良好");
        else if (score < 80 && score >= 60)
            System.out.println("及格");
        else if (score<60)
            System.out.println("不及格");
        else
            System.out.println("成绩不合法");
        scanner.close();
    }
}

switch多选择结构

在这里插入图片描述

  • switch 的穿透需要注意

    必须要写上break不然会一直往下执行

循环结构

While循环结构

while(布尔类型){

//循环内容

}
  • 一般为在某种情况下程序停止
  • 循环条件一直未true的话就会造成死循环,我们正在业务编程中应该尽量避免死循环
public class WhileDemo02 {
    public static void main(String[] args) {
        int i = 0;
        int sum = 0;
        while (i < 100) {
            i++;
            sum = sum + i;
        }
        System.out.println(sum);
    }
}

do…while循环结构

public class DoWhileDemo01 {
    public static void main(String[] args) {
        int i=0;
        int sum=0;
        do{
            sum = sum + i;
            i++;
        }while(i<=100);
        System.out.println(sum);
    }
}

while与do…while二者区别

public class DoWhileDemo02 {
    public static void main(String[] args) {
        int a=0;
        while(a<0){
            System.out.println(a);
            a++;}
        System.out.println("___________________");
        do {
            System.out.println(a);
            a++;
            }while(a<0);
        } }

在这里插入图片描述

  • 二者输出是有区别的前者(while)这种情况是没有进入循环,而(do…while)是有进入循环的🔑

for循环 重点

for(初始化;布尔;更新){

//循环结构

}

for替代while

  • while
int a = 1;
while (a <= 100) {
    System.out.println(a);
    a += 2;//迭代
     }
    System.out.println("While循环结束!!!");
  • for
for (int i = 1; i <= 100; i++) {
    System.out.println(i);
}
System.out.println("for循环结束!!!");
  • for 循环可以用快捷键

    快捷输入100.for可以生成如下循环

在这里插入图片描述

练习题

  • 练习题1:for循环实现0到100之间奇数和偶数的和
public class ForDemo02 {
    public static void main(String[] args) {
        int oddSum=0;//奇数和
        int evenSum=0;//偶数和
        for (int i = 0; i <=100; i++) {
            if(i%2!=0){
                oddSum=oddSum+i;
            }else{
                evenSum=evenSum+i;
            }
        }
        System.out.println("奇数的和:"+oddSum);
        System.out.println("偶数的和:"+evenSum);
    }
}
  • 练习题2:用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个
//用while或者for循环输出1-1000之间能被5整除的数,并且每行输出3个
for (int i = 0; i <= 1000; i++) {
    if(i%5==0){
        System.out.print(i+"\t");
    }
    if(i%(5*3)==0){//换行
        //System.out.println();
        System.out.println("\n");
    }
}

// \t是空格 \n是换行

  • 练习题3:打印出99乘法表

    for (int i=1;i<=9;i++){
        for (int m=1;m<=i;m++){
        System.out.print(m+"*"+i+"="+(m*i)+"\t");
        }
        System.out.println();
        }
    

在这里插入图片描述

  1. 我们先打印第一列
  2. 再把第一列用循环抱起来
  3. 去掉重复项 i<j
  4. 调整样式

print和println

  • System.out.print与System.out.println
    • 前者是正常输出后面必须要有输出参数而后者默认输出带换行可以不需要输出值默认带参数

增强for循环

  • 这个语句块等同于下面这个
int [] numbers={10,20,30,40,50};//定义数组
//遍历数组的元素
for (int x:numbers){
    System.out.println(x);
}
System.out.println("=========================");
for (int i = 0; i < 5; i++) {
    System.out.println(numbers[i]);
}

break和continue的区别

  • break在任何循环语句的主体部分均可以用break控制循环的流程

    break用于强制退出循环,不执行循环剩余语句 (break语句可在swith语句中使用)

  • continue语句在循环句体重,用于终止某次循环过程,即跳过循环体尚未执行的语句,判断是否下一次执行语句

break语句

public class BreakDemo01 {
    public static void main(String[] args) {
        int i=0;
        while (i < 100) {
            i++;
            System.out.println(i);
            if (i==30){
                break;
            }
        }
        System.out.println("1 2 3");
    }
}
  • 输出结果:到30就终止,但是不影响程序继续运行

在这里插入图片描述

continue语句

public class ContinueDemo01 {
    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);
        }
    }
  • 输出结果:持续输出跳过这一轮循环,下一轮继续循环

在这里插入图片描述

goto语句使用

  • 打印101-150之间所有质数
public class LabeDemo01 {
    public static void main(String[] args) {
        //打印101-150之间所有质数
        //质数:是指在大于1的自然数中,除了1和它本身以外不在有其他因数的自然数
        int count=0;
        //不建议使用!!! 
        outer:for (int i = 101; i < 150; i++) {
            for (int j=2;j<i/2;j++){
                if (i % j==0){
                    continue outer;
                }
            }
            System.out.print(i+" ");
        }
    }
}

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

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

相关文章

李宏毅ML-批次与动量

批次与动量 文章目录批次与动量1. Small batch or Large batch?2. Gradient descent Momentum3. 总结1. Small batch or Large batch? 在使用 gradient descent 进行 optimization 时&#xff0c;在每一次 epoch 前&#xff0c;要 shuffle 所有的资料&#xff0c;然后再分成…

无桌面Centos7系统安装Cypress@9.0.0并运行

一、安装Cypress 安装前准备 1、安装npm 下载安装包 cd /usr/local mkdir node cd node wget https://npm.taobao.org/mirrors/node/v15.8.0/node-v15.8.0-linux-x64.tar.gz ls -l解压这个包 tar -zxvf node-v15.8.0-linux-x64.tar.gz 你会发现已经有一个node的目录解压…

11、Javaweb_JSPMVCELJSTL三层架构用户列表案例

JSP: 1. 指令 * 作用&#xff1a;用于配置JSP页面&#xff0c;导入资源文件 * 格式&#xff1a; <% 指令名称 属性名1属性值1 属性名2属性值2 ... %> * 分类&#xff1a; 1. page &#xff1a; 配置JSP页面的 * content…

①【Spring】一文了解IOC容器

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 一文掌握IOC一、IOC二、IOC容器的实现BeanFact…

一文掌握fastapi微服务开发

目录 一、概述 1.1 微服务 1.1.1 微服务的优势 1.1.2 微服务的缺点 1.2 为何使用Python开发微服务 1.3 FastAPI概述 二、开发 2.1 安装FastAPI 2.1.1 安装虚拟环境 2.1.2 创建虚拟环境 2.1.3 激活虚拟环境 2.1.4 安装FastAPI 2.2 FastAPI简单使用 2.2.1 查询 2.…

java注解以及如何利用反射获取注解的属性值

一、什么是注解 1.Annotation是从JDK5.0开始引入的新技术 2.Annotation的作用 : &#xff08;1&#xff09;不是程序本身&#xff0c;可以对程序作出解释(这一点和注释(comment)没什么区别)&#xff08;2&#xff09;可以被其他程序(比如:编译器等)读取 3.Annotation的格式…

【每日一题】【LeetCode】【第十一天】杨辉三角

解决之路 题目描述 测试案例&#xff08;部分&#xff09; 第一次 杨辉三角感觉还是挺经典的代码题目&#xff1f;之前大一学C语言好像写过一次。 不过&#xff0c;自己当时就不会写&#xff0c;这次自己先试试能不能想出解决方案。 输入数字是几&#xff0c;那就要输出几…

亚马逊云科技帮助Gemsouls在云上快速实现技术验证与部署

元宇宙热度居高不下&#xff0c;它所创造的虚拟世界进一步拉近了人与人之间的距离&#xff0c;用数字化的形式消除地理与空间上的隔阂。而高度拟真化的虚拟人与AI虚拟社交&#xff0c;是元宇宙落地的重要领域&#xff0c;打造以人工智能驱动的虚拟人社交平台已成为行业大势。 …

DNS 的一些基础知识,以及 DNS 转换域名的过程

DNS(Domain Name System)&#xff0c;主要作用是将域名转成 IP&#xff0c;本文主要讲解了 DNS 的一些基础知识&#xff0c;以及 DNS 转换域名的过程。DNS 是什么dig命令绝大多数网络通信都是基于 TCP/IP 协议&#xff0c;而 TCP/IP 协议的基础是 IP&#xff0c;所以网络中的计…

获取未来时间 一年或N年

需求 展示从本月初开始 一年的时间 或N年的时间 以便用户选择思路 一年12个月 是已知的 从本月到12月可以生成本年的每天数据从1月至上月可以生成所需得到最后一年的数据今年加最后一年的月份可拼接一年时间 所以中间年份是所需年分-1的数组数据中间年份都是1-12月 可以通过年份…

软件的生命周期和测试的生命周期的区分

软件的生命周期测试的生命周期软件测试贯穿于软件的整个生命周期在需求分析阶段测试人员的活测试人员需要站在用户角度分析&#xff1a;软件需求是否合理&#xff1b;站在技术角度分析&#xff1a;技术上是否可行&#xff0c;还有没有优化的空间&#xff1b;站在测试角度分析&a…

VALL-E:微软全新语音合成模型可以在3秒内复制任何人的声音

近日&#xff0c;微软研究人员宣布了一种新的语音合成AI模型 VALL-E&#xff0c;给出3秒样音就可以精确地模拟一个人的声音。一旦它学会了一个特定的声音&#xff0c;VALL-E可以复制说话者的情绪和语气&#xff0c;即使说话者本人从未说过的单词也可以模仿。 论文地址&#xf…

xlCompiler转换为程序的优秀工具

xlCompiler转换为程序的优秀工具 xlCompiler是将oxel文件转换为程序的优秀工具。无需担心删除oxel文件中使用的宏和公式。该工具将您所做的转换为Exe可执行文件&#xff0c;这比分发原始文件时要低得多。最终的文件不需要氧气来执行&#xff0c;您也会有一种在简单的氧气环境中…

D. Friendly Spiders(bfs+筛法)

传送门题意&#xff1a;给你n个蜘蛛&#xff0c;每个蜘蛛有自己的腿数&#xff0c;如果某两个蜘蛛可以直接联系&#xff0c;那么这两个蜘蛛的最大公约数就不为1&#xff0c;否则这两只蜘蛛就不能直接联系。现在给你两个蜘蛛的序号i,j问这两只蜘蛛是否可以直接或者通过其他的蜘蛛…

SDK安全专项评测证书

SDK安全专项行动”是中国信息通信研究院安全研究所大数据应用与安全创新实验室共同发起的&#xff0c;实验室紧跟信息技术发展趋势&#xff0c;依托数据安全、移动安全等领域深厚积累&#xff0c;通过前瞻研究和实践探索&#xff0c;形成了完整的SDK评测方案和指标体系。 SDK产…

【HCIA-openEuler】实验手册—05【openEuler软件管理】

文章目录一、实验介绍1、内容描述2、实验目的二、配置Yum源步骤1&#xff1a;进入yum repo目录步骤2&#xff1a;更改openEuler_x86_64.repo文件步骤3&#xff1a;刷新列出软件列表三、使用RPM命令管理软件1、RPM查询命令步骤1&#xff1a;执行以下命令&#xff0c;通过yum和rp…

华为DHCP实验配置

配置AR1为PC2分配地址 dhcp enable ip pool DHCP_PC2 network 192.168.20.200 mask 24 gateway-list 192.168.20.254 dns-list 192.168.20.100 excluded-ip-address 192.168.20.100 int g0/0/1 ip address 192.168.20.254 24 dhcp select global 配置AR1为PC3分配IP地址 dhcp e…

一个令人赞不绝口的代码 Debug 神器

在编写程序时&#xff0c;无论是对于初学者还是对于专业开发人员&#xff0c;都会花费大量时间来调试或修复源代码错误&#xff0c;也就是 Debug。 这个过程繁琐复杂&#xff0c;包括 Bug 复现和 Bug 定位等环节。如果有了自动化的 Debug 程序&#xff0c;就可以显著提高编程实…

Three.js一学就会系列:05 加载3D模型

系列文章目录 Three.js一学就会系列&#xff1a;01 第一个3D网站 Three.js一学就会系列&#xff1a;02 画线 Three.js一学就会系列&#xff1a;03 炫酷3D划线 Three.js一学就会系列&#xff1a;04 炫酷3D文字 文章目录系列文章目录前言一、核心代码讲解引入插件轨道控制器加载…

ES6 课程概述⑤

文章目录9-1. Fetch Api 概述9-2. 基本使用参数返回值9-3 **Response 对象**9-4 Request 对象9-5 Headers 对象9-6 文件上传10-1 迭代器背景知识JS 中的迭代器可迭代协议 与 for-of 循环可迭代协议for-of 循环展开运算符与可迭代对象生成器 (Generator)set 集合9-1. Fetch Api …