java流程控制-给个一件三连呗!✨✨✨✨✨

接下来我们来看流程控制方面的知识
请添加图片描述

文章目录

    • 1.Scanner类的使用
        • 1.1 使用next()进行接收
        • 1.2 nextLine()
        • 1.3 hasNext()
        • 1.4 scanner.nextInt()
    • 2.选择结构
        • 2.1 if...else....语句
        • 2.2 if....else if....else...语句
        • 2.3 switch() case...语句
    • 3.循环结构
        • 3.1for 循环:
        • 3.2while 循环:
        • 3.3 do-while 循环:
        • 3.4 foreach 循环:
    • 4.练习题
        • 4.1 计算0到100的奇数和,偶数和
        • 4.2 用while和for循环输出1-1000之间能被5整除的数,并且,每行4个
        • 4.3 打印九九乘法表
        • goto关键字

1.Scanner类的使用

要使用用户交互的Scanner,我们首先必须导入该类(先试着去敲代码)导入java.util包下的Scanner类,Scanner类是Java标准库中的一个工具类,它提供了一种方便的方式来读取用户从标准输入流(通常是键盘)输入的数据。

import java.util.Scanner;

step1 导入Scanner类:在程序中使用import java.util.Scanner;语句导入Scanner类。
step2 创建Scanner对象:在程序中使用Scanner scanner = new Scanner(System.in);语句创建Scanner对象,其中System.in表示标准输入流。
step3 使用Scanner对象读取数据:使用Scanner对象的next()、nextInt()等方法读取从标准输入流中输入的数据。

1.1 使用next()进行接收
package com.process_control;
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()){String str= scanner.next();System.out.println("输出的内容为:"+str);}//凡是IO流的类,如果不关闭会一直占用资源,养成好习惯scanner.close();}
}

在这里插入图片描述

请添加图片描述
啊!为啥输入的Hello world 输出之后变成了Hello?因为
next()是Scanner类中的一个方法,可用于从标准输入流(通常是键盘)获取下一个标记(由空格、制表符或换行符分隔的字符串)。
next()方法会读取输入流中的下一个标记,并返回一个String类型的值。如果输入流中没有下一个标记,则next()方法会等待用户的输入直到有输入为止。
这里遇到下一个标记为空格,于是乎,输出Hello,

1.2 nextLine()

那么,我们需要有这些标记符(空格,制表符)的字符串怎么办了?
答:使用nextLine()方法,实例:

import java.util.Scanner;public class Demo02 {public static void main(String[] args) {System.out.println("haha,接下来使用nextLine()方式:");Scanner scanner=new Scanner(System.in);String str=scanner.nextLine();System.out.println("输出:"+str);}
}
1.3 hasNext()

hasNext()是Scanner类中的一个方法,用于判断输入流中是否还有下一个标记(由空格、制表符或换行符分隔的字符串)。
hasNext()方法返回一个boolean类型的值,如果输入流中有下一个标记,则返回true,否则返回false。
在这里插入图片描述

1.4 scanner.nextInt()

scanner.nextInt()是Java中Scanner类的一个方法,用于从标准输入(通常是键盘)中读取下一个整数。它的语法形式如下:

Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();

首先创建了一个Scanner对象,并将其初始化为System.in,表示从标准输入中读取数据。然后,通过调用nextInt()方法,从标准输入中读取下一个整数,并将其保存在num变量中。
需要注意的是,如果标准输入中没有下一个整数,则nextInt()方法会阻塞程序的执行,直到有新的输入为止。如果输入的数据不是整数,则会抛出InputMismatchException异常。
除了nextInt()方法,Scanner类还提供了其他一些方便的方法,如nextDouble()、nextLine()等,用于读取不同类型的数据。
在这里插入图片描述

2.选择结构

2.1 if…else…语句
if (condition) {// 如果condition为true,则执行这里的代码块
} else {// 如果condition为false,则执行这里的代码块
}

实例

import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个整数:");int num = scanner.nextInt();if (num > 0) {System.out.println(num + "是一个正数。");} else {System.out.println(num + "不是一个正数。");}}
}
2.2 if…else if…else…语句
if (condition1) {// 如果condition1为true,则执行这里的代码块
} else if (condition2) {// 如果condition2为true,则执行这里的代码块
} else if(condition3){//如果condition3为true,则执行这里}
else {// 如果上述条件都不成立,则执行这里的代码块
}
2.3 switch() case…语句

switch…case语句是一种多重条件判断语句,用于根据不同的值执行不同的代码块。它的语法形式如下:

switch (expression) {case value1:// 如果expression的值等于value1,则执行这里的代码块break;case value2:// 如果expression的值等于value2,则执行这里的代码块break;...default:// 如果上述所有条件都不成立,则执行这里的代码块break;
}

在switch…case语句中,expression是一个表达式,它的值会与每个case后面的值进行比较。如果匹配到某个case后面的值,则执行对应的代码块。如果没有匹配到任何一个case,则执行default后面的代码块。
需要注意的是,每个case后面必须加上break语句,用于结束switch…case语句。如果没有break语句,则会继续执行下一个case的代码块,直到遇到break或者default为止。

import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入1-7之间的整数:");int num = scanner.nextInt();switch (num) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;case 4:System.out.println("星期四");break;case 5:System.out.println("星期五");break;case 6:System.out.println("星期六");break;case 7:System.out.println("星期日");break;default:System.out.println("输入有误,请重新输入。");}}
}

3.循环结构

3.1for 循环:

for 循环是最常用的循环结构之一,它允许你指定一个初始值、一个条件和一个步进表达式,来控制循环的执行次数。语法如下:

for (初始化; 条件; 步进) {// 循环体代码
}

初始化:在循环开始时执行一次,用于初始化计数器或设置循环变量的初始值。
条件:每次循环开始前检查的条件,如果条件为真,则继续执行循环体;如果条件为假,则退出循环。
步进:在每次循环结束后执行的操作,用于更新计数器或循环变量的值
练习题:
打印如下三角形:

    ****************
*********
public class Day11201 {public static void main(String[] args) {for(int i=1;i<=5;i++){for(int j=4;j>=i;j--){System.out.print(" ");}for(int j=1;j<=i;j++){System.out.print("*");}for(int j=1;j<=i-1;j++){System.out.print("*");}System.out.println();}}
}

step1:根据题意,我们需要打印出具有5行的对称三角形,故外层循环为1-5
step2:内层第一个for循环打印左边的空格,我们在纸上画一下可以发现,空格随着行数的增加数量从4到0依次递减
step3:内层第二个for循环,我们打印的是对称三角形的左边*,我们知道第一行有1个*,第2行2个依次类推,故j<i;
step4:内层第三个for,打印右边的*,因此,我们可以发现右边的*,每次比行数少1.

3.2while 循环:

while 循环会在指定条件为真时重复执行循环体。语法如下:

while (条件) {// 循环体代码
}

条件:在每次循环开始前检查的条件,如果条件为真,则继续执行循环体;如果条件为假,则退出循环。

public class Day11202 {public static void main(String[] args) {int m=0;double sum=0;Scanner scanner=new Scanner(System.in);while(scanner.hasNextDouble()){m+=1;sum+=scanner.nextDouble();}System.out.println("输入有多少个数:"+m);System.out.println("输入数之和为:"+sum);}
}
3.3 do-while 循环:

do-while 循环和 while 循环类似,不同之处在于 do-while 循环会先执行一次循环体,然后检查条件。语法如下:

do {// 循环体代码
} while (条件);

条件:在每次循环结束后检查的条件,如果条件为真,则继续执行循环体;如果条件为假,则退出循环。

3.4 foreach 循环:

foreach 循环用于遍历数组或集合中的元素,无需使用索引。语法如下:

for (元素类型 元素变量 : 数组或集合) {// 循环体代码
}

元素类型:表示数组或集合中元素的类型。
元素变量:表示当前循环迭代的元素。


public class Day11203 {public static void main(String[] args) {int[] arr={1,2,3,4,5};for(int i=0;i<5;i++){System.out.print(arr[i]);}System.out.println();for(int x:arr){System.out.print(x);}System.out.println();}
}

4.练习题

4.1 计算0到100的奇数和,偶数和
public class Day11204 {public static void main(String[] args) {int odd_sum=0;int even_sum=0;for(int i=0;i<100;i++){if(i%2==0){even_sum+=i;}else{odd_sum+=i;}}System.out.println("所有的奇数和为:"+odd_sum);System.out.println("所有的偶数和为:"+even_sum);}
}
所有的奇数和为:2500
所有的偶数和为:2450
4.2 用while和for循环输出1-1000之间能被5整除的数,并且,每行4个
package com.determination;public class Day11205 {public static void main(String[] args) {int flag=0;for(int i=1;i<=1000;i++){if(i%5==0){System.out.print(i+" ");flag++;if(flag%4==0){System.out.println();}}}}
}
4.3 打印九九乘法表
public class Day11206 {public static void main(String[] args) {for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){System.out.print(i+"x"+j+"="+i*j+" ");}System.out.println();}}
}
1x1=1 
2x1=2 2x2=4 
3x1=3 3x2=6 3x3=9 
4x1=4 4x2=8 4x3=12 4x4=16 
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81 
goto关键字

在这里插入图片描述
打印出101-150之间的所有质数

public class Day11207 {public static void main(String[] args) {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;}}//打印出101-150之间的所有质数System.out.print(i+" ");}}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈装配中的螺栓拧紧力矩——SunTorque智能扭矩系统

装配中的螺栓拧紧力矩是确保机械设备稳定运行的重要因素之一。在装配过程中&#xff0c;通过对螺栓拧紧力矩的合理控制&#xff0c;可以有效地提高螺栓连接的可靠性和耐久性&#xff0c;减少设备故障的发生。SunTorque智能扭矩系统从螺栓拧紧力矩的基本概念、影响因素以及如何选…

C桑(Cython)从入门到入土(2): np数组操作对比

C桑(Cython)从入门到入土 2. np数组操作对比 Node sc518 Copy has image data of type unsigned long long实际上, &#x1f446;&#x1f3fb;这个错误是我探索Cython的缘起… code1: Form: 更现代的方法是使用内存视图而不是指针&#xff1a; cdef np.uint32_t[:,:,::1] …

mysql基础操作

1.基础操作 1.1 启动服务 a.手动启动 我的电脑->右键->管理->服务->mysql->右键启动/启动 b.命令方式 在管理员模式下运行cmd,执行如下操作&#xff1a; net start mysql --启动服务 net stop mysql --关闭服务1.2 命令连接数据库&#xff08;客户端连接数据…

STL之vector

目录 vector的定义和特性 vector的定义和结构非常简单&#xff0c;它由以下几个重要的部分组成&#xff1a; vector的常用函数 vector排序去重 排序 去重 代码示例 vector的定义和特性 在c中&#xff0c;vector是一个动态数组容器&#xff0c;可以存储一系列相同类型的…

深度解析:接口测试与功能测试的区别,精彩回答震撼心灵

软件测试的细分领域范围广泛。 很多人常常搞不清楚接口测试与功能测试之间的区别。 今天用一篇文章来讲清楚“接口测试与功能测试的区别及内存联系”。 接口测试和功能测试都属于软件测试的细分领域。 更准确的说&#xff0c;软件测试按大的方向分类分别为&#xff1a;功能…

如何用Mac工具制作“苹果高管形象照”

大伙儿最近有没有刷到“苹果高管形象照”风格&#xff0c;详细说来就是&#xff1a; 以苹果官网管理层简介页面中&#xff0c;各位高管形象照为模型&#xff0c;佐以磨皮、美白、高光等修图术&#xff0c;打造的看上去既有事业又有时间有氧的证件照&#xff0c;又称“苹…

对运放设计静态工作电压和求摆幅的理解

MOS的电压关系 在运放设计静态工作电压时要利用vod来确定&#xff0c;已知MOS的VTH&#xff0c;工作在饱和区&#xff0c;再假设管子的Vdsat&#xff0c;根据下式就能由G求S或由S求G&#xff1a; 上述关系可以用来确定电路的所有电压工作点&#xff0c;因为一旦Vod确定&#…

flask框架基本使用

一、使用pycharm创建项目 1.创建项目 2.调整默认终端 3.打开虚拟终端 打开终端可以看出使用的是p1的虚拟机终端了 4.pyCharm小技巧 在flask种输入一个完整并且存在的函数名称或者类明&#xff0c; 然后 Alt 回车&#xff0c;pycharm可以自动导包&#xff0c;不用在手动在代…

Web前端 ---- 【Vue3】Proxy响应式原理

目录 前言 安装Vue3项目 安装 Proxy 语法格式 前言 从本文开始进入vue3的学习。本文介绍vue3中的响应式原理&#xff0c;相较于vue2中通过object.defineProperty&#xff08;vue2中的响应式&#xff09;来实现响应式&#xff0c;vue3中换成了Proxy来进行实现。 安装Vue3项目…

chat-plus部署指南

目录 1.下载代码 2.启动 3.测试 1.下载代码 cd /optwget https://github.com/yangjian102621/chatgpt-plus/archive/refs/tags/v3.2.4.1.tar.gz 2.启动 cd /opt/chatgpt-plus-3.2.4.1/deploydocker-compose up -d 3.测试 管理员地址xxx:8080/admin 账号密码admin/admin1…

百度面经整理(2024最新)

百度 面经1 shiro的组件分布式一致性算法zookeeper那些能参与投票&#xff0c;leader能投票吗&#xff1f;netty零拷贝实现volatile&#xff0c;如何感知到变量变化的redis高可用http如何跨域&#xff1f;tcp如何长链接。http如何操作浏览器缓存。用过消息队列吗&#xff1f;…

二极管选型怎么选?常用参数要熟练~

同学们大家好&#xff0c;今天我们继续学习杨欣的《电子设计从零开始》&#xff0c;这本书从基本原理出发&#xff0c;知识点遍及无线电通讯、仪器设计、三极管电路、集成电路、传感器、数字电路基础、单片机及应用实例&#xff0c;可以说是全面系统地介绍了电子设计所需的知识…