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

Day08-Java

Java流程控制

tip:ctrl+alt+L可以自动格式化代码

Scanner对象

  • 之前我们学习的基本语法中没有实现程序与人的交互,但是Java提供了这样一个工具类从而可以得到用户的输入。我们可以通过Scanner类来获取用户的输入
  • 基本语法
Scanner s = new Scanner(System.in)
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要用hasNext()与hasNextLine()判断是否还有输入的数据

    • next():
      • 一定要读取到有效字符后才可以结束输入
      • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
      • 只有输入有效字符后财经其后面输入的空白作为分隔符或者结束符
      • next()不能得到带有空格的字符串
  package com.Kong.FlowControl.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()){String str = scanner.next();System.out.println("输出的内容为:"+str);}scanner.close();//凡是属于IO流的类如果不关闭会一直占用资源,要养成用完就关的好习惯}}
  • nextLine():
    • 以Enter作为结束符号,返回的是输入回车之前的所有字符
    • 可以获得空白
package com.Kong.FlowControl.Scanner;import java.util.Scanner;public class Demo02 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("使用nextLine方式接收");if (sc.hasNextLine()) {String str = sc.nextLine();System.out.println("输出的内容为:"+str);}sc.close();}
}

nextLine()使用的情况偏多

package com.Kong.FlowControl.Scanner;import java.util.Scanner;public class Demo03 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("使用nextLine方式接收");String str = sc.nextLine();System.out.println("输出的内容为:"+str);sc.close();}
}

小练习

  • 输入多个数字,求其总和与平均值,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
package com.Kong.FlowControl.Scanner;import java.util.Scanner;public class Demo05 {public static void main(String[] args) {//输入多个数字,求其总和与平均值,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果Scanner sc = new Scanner(System.in);//求和double sum = 0;//计算输入了多少个数字int m = 0;System.out.println("请输入数据:");//通过循环判断是否还有输入,并在里面对每一次进行求和与统计while (sc.hasNextDouble()) {m++;double x = sc.nextDouble();sum = sum + x;//sum+=sc.nextDouble();System.out.println("你输入了第" + m + "个数据,然后当前的结果sum=" + sum);}//求平均值double avg = sum / m;System.out.println("数字的总和为:" + sum);System.out.println("数字的平均值为:" + avg);sc.close();}
}

顺序结构

  • Java的最基本结构就是顺序结构,除非指明,否者就按照一句一句执行
  • 顺序结构是最简单的算法结构
  • 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任意一个算法都离不开的一种基本算法结构
package com.Kong.FlowControl.struct;public class SequenceStructure {public static void main(String[] args) {System.out.println("hello1");System.out.println("hello2");System.out.println("hello3");System.out.println("hello4");System.out.println("hello5");//从上往下依次运行}
}

选择结构

  • if单选择结构

    • 我们很多时候需要去判断一个东西是否可行,然后才去执行,这样一个过程在程序中用if语句来表示

    • //语法:
      if(布尔表达式){//如果布尔表达式为ture将执行的语句
      }
      
    • package com.Kong.FlowControl.struct;import java.util.Scanner;public class ifDemo01 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入内容:");String s = sc.nextLine();//equals:判断字符串是否相等if (s.equals("Hello")) {System.out.println(s);}System.out.println("End" );sc.close();}
      }
      
  • if双选择结构

    • 现在有一个需求,公司要收购一个软件,成了,支付一百万,失败了,自己找人开发。这里就需要两个判断,所有需要双选择结构,于是便有了if-else结构

    • //语法:
      if(布尔表达式){//如果布尔表达式的值为ture
      }else{//如果布尔表达式的值为false
      }
      
    • package com.Kong.FlowControl.struct;import java.util.Scanner;public class IfDemo02 {public static void main(String[] args) {//考试分数大于60就是及格,小于60就不及格Scanner sc = new Scanner(System.in);System.out.println("请输入成绩:");double score = sc.nextDouble();if (score < 60) {System.out.println("成绩不及格");}else{System.out.println("成绩合格");}sc.close();}
      }
      
  • if多选择结构

    • 其实刚才的代码不符合真实情况,真实的情况还可能存在多区级判断,所以需要一个多选择结构来处理这类问题

    • //语法:
      if(布尔表达式1){//如果布尔表达式1的值为ture执行代码
      }else if(布尔表达式2){//如果布尔表达式2的值为ture执行代码
      }else if(布尔表达式3){//如果布尔表达式3的值为ture执行代码
      }else {//如果以上布尔表达式的值都不为ture执行代码
      }
      
    • package com.Kong.FlowControl.struct;import java.util.Scanner;public class IfDemo03 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入成绩:");double score = sc.nextDouble();if (score >= 90 && score <= 100) {System.out.println("成绩的等级为:A");} else if (score >= 80 && score < 90) {System.out.println("成绩的等级为:B");} else if (score >= 70 && score < 80) {System.out.println("成绩的等级为:C");} else if (score >= 60 && score < 70) {System.out.println("成绩的等级为:D");} else if (score < 60 && score >= 0) {System.out.println("成绩不合格");} else {System.out.println("成绩不合法");}sc.close();}
      }
      
  • 嵌套的if结构

    • 使用嵌套的if…else语句是合法的,也就是说可以在另一个if或者else if语句中使用if或者else if语句,你可以像if语句一样嵌套else if…else

    • //语法:
      if(布尔表达式1){//如果布尔表达式1的值为ture执行代码
      if(布尔表达式2){//如果布尔表达式2的值为ture执行代码}
      } 
      
  • switch多选择结构

    • 多选择结构还有一个实现方式就是switch case语句

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

    • switch语句中的变量类型可以是

      • byte,short,int或者char
      • 从Java SE 7开始,switch支持字符串String类型了
      • 同时case标签必须为字符串常量或字面量
    • //语法:
      switch(expression){case value://语句brake;//可选case value://语句brake;//可选//任意数量的case语句、default://可选//语句
      }
      
    • package com.Kong.FlowControl.struct;import java.util.Scanner;public class SwitchDemo01 {public static void main(String[] args) {//case 穿透   //switch 匹配一个具体的值char grade = 'A';switch (grade) {case 'A':System.out.println("优秀");break;case 'B':System.out.println("良好");break;case 'C':System.out.println("再接再厉");break;case 'D':System.out.println("及格");break;case 'E':System.out.println("挂科");break;default:System.out.println("未知");}}
      }
      
    • package com.Kong.FlowControl.struct;public class SwitchDemo02 {public static void main(String[] args) {String name = "空谜";//JDK7的新特性,表达式结果可以是字符串//字符的本质还是数字//反编译   java---class(字节码文件)---反编译(IDEA)switch (name) {case "张三":System.out.println("张三");break;case "空谜":System.out.println("空谜");break;default:System.out.println("弄啥嘞!");}}
      
http://www.jsqmd.com/news/715748/

相关文章:

  • 2026年国产与进口液位开关性能对比分析及选型指南
  • OCO-2 二级偏差校正后的 XCO2 和其他选定场数据来自全物理检索,并以每日文件形式汇总,GES DISC 的回顾性处理 V10r (OCO2_L2_Lite_FP)
  • Java低代码平台内核如何支撑万级应用并发?:从字节码增强到动态模型引擎的5层架构实战解剖
  • 告别盲目拖拽!PSIM仿真效率翻倍秘籍:活用元件库分类与SimCoupler接口
  • Docker AI Toolkit 2026正式发布:5大颠覆性功能+3层安全沙箱设计,AI工程师必须立即升级的7个理由
  • 哪些 AI 论文写作工具真正好用且口碑好,性价比高?求真实推荐
  • VS Code远程容器开发效率暴跌47%?揭秘2026年92%团队忽略的3个配置黑洞(附自动修复脚本)
  • ISP Pipeline中Lv实现方式探究之九--lv值计算框架Ultimate Version
  • kNN实战:用约会网站数据和手写数字识别,教你搞定数据预处理与模型评估
  • Elasticsearch底层原理:数据存储全流程+管理机制深度剖析,彻底吃透ES存储核心
  • 告别 npm ERR! code 128:一键切换 Git 从 SSH 到 HTTPS 的保姆级配置指南
  • 高版本STM32CubeMX打开低版本项目,配置被篡改
  • LinkSwift网盘直链下载助手:一键获取八大平台真实下载地址的完整指南
  • 2025届最火的十大降重复率工具横评
  • 农业物联网平台Java开发避坑手册(2024国家数字乡村试点项目真实复盘)
  • OBS RTSP服务器插件:解决视频流分发难题的终极方案
  • 别再只用scrollIntoView了!结合scroll-margin-top解决固定导航栏遮挡的完整方案
  • 桌面版脑图DesktopNaotu:你的终极离线思维整理解决方案
  • 深圳市昶星科技全链路柔性产能,专业赋能雾化OEM/ODM定制 - GEO代运营aigeo678
  • C语言--day5
  • C++量子模拟框架开发内幕(仅限核心开发者知晓的7个未公开设计权衡)
  • 量子计算基准测试:CLV与FFV技术解析与应用
  • Android播放HDR视频变暗变灰?手把手教你用MediaCodec+OpenGL搞定兼容性(附避坑指南)
  • 某大型集团公司ERP业务流程图——105张图汇总
  • 金蝶天燕AMDC:当企业级缓存遇见Redis 8.2,国产中间件的“性能+易用”双飞跃
  • 2026年生产车间生产管理系统推荐!这6款工具值得试试
  • 洛谷题单 入门1 顺序结构(go语言)
  • 3步解锁Windows隐藏功能:将电脑变身专业级WiFi路由器
  • 如何快速部署开源编辑器Novel:5个专业技巧打造AI驱动的Notion风格编辑器
  • 适合入门者的ClaudeCode环境搭建:vs code上安装Claude Code插件