当前位置: 首页 > news >正文

Java学习笔记:Java流程控制

Java流程控制

用户交互Scanner

Scanner对象

Scanner知识点:

  1. java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入

  1. 基本语法:

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

    next()和hasNext()

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

答案: 使用next()方法接收:

hello world //手动输入内容

输出的内容为:hello

nextLine()和hasNextLine()

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

答案: 使用nextLine()方法接收:

hello world //手动输入内容

输出的内容为:hello world

注意

  1. next(): 读取有效字符后才会结束输入,对输入的有效字符之前遇到的空白,next()会自动去除,只有输入有效字符后才会将其后面输入的吧、空白作为分割符后结束符,next()不能得到带有空格的字符串。

  2. nextLine(): 以Enter为结束符,可以获得空白。

Scanner示例

判断整数和小数
import java.util.Scanner; ​ public class Demo{ 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.println("请输入小数:"); //小数 if(scanner.hasNextLine()){ f = scanner.nextFloat(); System.out.println("小数为:" + f); }else{ System.out.println(("输入的不是小数!")); } Scanner.close(); } }

答案:请输入整数:

10

整数为:10

请输入小数:

0.52

小数为:0.52

顺序结构

public class Demo{ public static void main(String[] args){ System.out.println("hello1"); System.out.println("hello2"); System.out.println("hello3"); System.out.println("hello4"); } }

答案:hello1

hello2

hello3

hello4

选择结构

if选择结构

if单选择结构

1.语法:

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

2.代码示例

public class Demo{ 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); } System.out.println("End"); scanner.close(); } }

答案:请输入内容:

11111 //用户手动输入的内容

End

if双选择结构

语法:

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

语句:

if(布尔表达式1){ //如果布尔表达式1为true将执行的语句 }else if(布尔表达式2){ //如果布尔表达式2为ture将执行的语句 }else if(布尔表达式3){ //如果布尔表达式3为ture将执行的语句 }else{ //如果以上布尔表达式都不为true将执行的语句 }

Switch多选择结构

语句

switch(expression){ case value : //语句 break; //可选 case value : //语句 break; //可选 //可以有任意数量的case语句 default : //可选 //语句 }

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

循环结构

while循环

语句:

while(布尔表达式){ //循环内容 }
  1. 只要布尔表达式为true,循环就会一直执行下去。

  2. 我们大多数情况是会让循环停下来,我们需要一个让表达式失效的方式来几位数循环。

  3. 少部分情况需要循环一直执行,比如服务器的请求响应监听等。

  4. 循环条件一直为true会造成无限循环【死循环】,正常业务要尽量避免。会影响程序性能或造成程序卡死!

do...while循环

语句

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

do...while循环至少会执行一次

While和do...while的区别:

  1. while先判断后执行。do...while先执行后判断

  2. Do...while总是保证循环体会被至少执行一次!

for循环

1.语句:

for(初始值; 布尔值表达式; 更新){ //代码语句 }

2.代码示例(打印九九乘法表)

public class Demo{ public static void main(String[] args){ for(int i=1; i<=9; i++){ for(int j=1; j<=i; j++){ System.out.print(i + "*" + j + "=" + (i*j) + (\t)); } System.out.println(); } } }

增强for循环

1.语句

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

2.代码示例

public class Demo{ public static void main(String[] args){ int[] numbers = {10, 20, 30, 40}; //遍历数组的元素 for(int x : numbers){ System.out.println(x); } } }

答案:10

20

30

40

break 和 coutinue

1.Break

break用于强制跳出循环,不执行循环内剩余语句

3.Continue

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

http://www.jsqmd.com/news/1402533/

相关文章:

  • VICBench:多语言代码漏洞检测基准测试实战指南
  • 腾讯云轻量服务器安全加固指南:从SSH密钥到防火墙配置
  • 构建动态技能地图:从元技能到专业能力的系统化成长指南
  • Blender免费材质模型资源库全攻略:从PBR原理到高效搜索管理
  • HTTP状态码到底是个啥?一文看懂200、301、302、404、500
  • 构建智能工作流:开源流程引擎、专用小模型与智能体路由的集成实战
  • Commvault实战:Oracle数据库备份恢复全流程解析与避坑指南
  • MapInfo在线地图插件运行错误:Win10/Win11系统兼容性诊断与修复指南
  • 我的一点想法
  • Nacos 2.0 连接 127.0.0.1:9848 被拒绝?一文彻底解决 gRPC 端口通信问题
  • 2026年8月高强度微硅粉/微硅粉优质公司推荐_山东鹏程光伏材料有限公司 - 品牌宣传支持者
  • AI编程时代开发者核心竞争力:从编码到架构的升维竞争
  • 从词向量到语义搜索:Embedding原理与工程实践全解析
  • Ubuntu 22.04 Intel平台编译ALAMODE:从环境配置到性能调优完整指南
  • VSCode集成Cppcheck:Windows下C/C++代码静态分析与质量提升实战
  • Grok Bot插件生态解析:150+插件如何让AI从聊天机器人进化为可编程智能体
  • 大学生考哪些证书有用?2026年高含金量证书考证指南与就业避坑全解析
  • OpenAI API 集成实战:从环境配置到生产级代码助手开发
  • 2026年8月毛豆机采摘服务/跨区域毛豆机采摘服务农户推荐合作社_余姚康绿蔬菜专业合作社 - 行业平台推荐
  • FPGA/ASIC设计中set_input_delay约束详解:从原理到实战避坑指南
  • 【Linux系统搭建】嵌入式Linux串口输入问题排查与解决全记录
  • CAVE沉浸式空间:从“观看”到“走进画面”的体验革命
  • EG1252|正反激两用电流模式 PWM 控制器,带输入欠压保护国产优选
  • Nginx源码编译安装全攻略:从环境配置到报错解决
  • Intel图形计算运行时深度解析:从OpenCL到Level Zero的异构计算实践
  • CSS3新增标签总结
  • AI Agent实战:从零构建智能体与高频面试题深度解析
  • 深入解析队列实现栈:从数据结构本质到工程实践
  • AI自反性:构建能自我进化的智能体系统
  • 宽压降压电源新选择|CN8830 100V 异步降压芯片,汽车 / 工业 IoT 供电一站式方案