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

java基础流程控制笔记

Java流程控制

用户交互Scanner

import java.util.Scanner类获取用户信息,提供与用户交互的方式

Scanner scanner = new Scanner(System.in);

通过next() 到空白会截断 nextLine()到回车结束 获取输入字符串

Scanner str = scanner.nextLine();

用hasNext() hasNextLine()判断

IO流会占用资源,最后scanner.close()

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入三位学生成绩,用空格隔开:");int score1 = scanner.nextInt();int score2= scanner.nextInt();int score3 = scanner.nextInt();int avg = (score1 + score2 + score3) / 3;System.out.println(avg);}}

选择结构

  1. 基本if选择结构 if(){}

  2. if else选择结构

  3. 三元一次选择结构? :

  4. 嵌套if选择结构

    public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("请输入是否获胜(Y/N):");String win =sc,next;if ("Y",equils(win)){System.out.println("请输入性别:");      if("男".equils(sex)){System.out.println("进入男子组决赛")}else {System.out.println("进入女子组决赛");}}else{System.out.println("已被淘汰");}}
    }
    

    ** 注: **逻辑与和或短路: && ||

    1. switch选择结构 :支持byte short int Enum String(JDK7后支持)

    switch(表达式){

    ​ case 常量1:

    ​ break;

    }

    转换思想:(1|2|3 -1 )/3 = 0 (4| 5|6 -1)/3 = 1

    总结

    **1. 选择结构 **

    基本if if-else 嵌套if 多重if switch

    2.switch选择结构多重if选择结构的异同

    相同:

    都可以来处理多分支结构

    不同:

    switch只用于可穷举情况,多重if选择结构适用于选择结构的所有场景,但多重if选择结构还支持对区间的描述

    Scanner输入验证

    //校验Scanner储存结构的数据中是否有下一个整数

    //则让用户输入

    if(sc.hasNextInt()){

    }else

    程序调试

    1. 什么是程序调试

      程序出现问题时希望程序能够暂停下来,操作代码逐行执行,观察程序中变量的变化是否按照我们设计程序的思维变化,从而找问题并解决

    2. 为什么需要程序调试

      人无完人,要定位问题

    3. 如何进行程序调试

      在有效的代码上下断点

      然后以DEBUG模式启动程序

      程序启动后,通过操作使程序代码逐行执行,观察变量的值的变化,从而找出问题并解决

循环结构

1.什么是循环

同样的事情反复做多次

  1. 为什么用

    去除冗余部分(重复的编码)

  2. 循环三要素

    定义循环变量并赋初值

    循环条件

    循环变量的更新

    1. while循环

      while(循环条件){}
      

      先判断后执行

      水仙花数

      public class Main {public static void main(String[] args) {int number =100;while (number < 1000) {int one = number % 10;int two = number / 10 %10;int three = number / 100;if (one*one*one + two*two*two +three*three*three == number) {System.out.println(number);}number++;}}
      }
      
      1. do-while 循环

        ed:记录总成绩

        public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int totalSore =0;int score;do {System.out.print("Enter your score: ");score = scanner.nextInt();totalSore += score;}while (score !=0);System.out.println("Total Sore: " + totalSore);}
        }
        

        至少执行一次

      2. for循环

        for(定义变量并赋初值;循环条件;循环变量的更新)

      3. 总结

        循环数确定选for

break&continue

break只能应用于while do-while for switch

continue只能应用于循环结构while do-while for

多重循环

ed:

  1. 99乘法表

  2. 重复图形

    分析实现

    善用用||控制图形打印

  3. 求质数

  4. 学生管理系统

    public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (true) {System.out.println("====================");System.out.println("1.学生成绩管理");System.out.println("2.学生选课管理");System.out.println("3.退出系统");System.out.println("====================");System.out.println("请选择菜单编号");int menuNo = scanner.nextInt();if (menuNo == 1) {chlidMenu :while(true){System.out.println("************************");System.out.println("1.添加成绩");System.out.println("2.查看成绩");System.out.println("3.修改成绩");System.out.println("4.删除成绩");System.out.println("5.返回主菜单");System.out.println("************************");System.out.println("请选择菜单编号:");int option = scanner.nextInt();switch (option) {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 chlidMenu;}}} else if (menuNo == 2) {} else {System.out.println("感谢使用本人开发的系统");break;}}}
    }
    
http://www.jsqmd.com/news/84576/

相关文章:

  • Flutter 通用轮播图组件 BannerWidget:自动播放 + 指示器 + 全场景适配
  • Java冷启动全指南:从原理到实战优化
  • 校招 Java 面试必看:JVM 其实就考这 3 个点(我帮你讲透)
  • 列表基本概念
  • Flutter 通用下拉刷新上拉加载列表 RefreshListWidget:分页 + 空态 + 错误处理
  • 【Java方法】--递归的正确使用方法,告别栈溢出
  • 【JavaWeb】Servlet继承结构
  • Linux网络编程-udp
  • [从零构建操作系统]08 函数调用时栈的底层行为解析
  • Springboot医疗云胶片管理系统nem7x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • MATLAB与FlightGear联合仿真教程:包含Simulink工程文件的PDF指南
  • 实战教程:1小时掌握逆向Unity游戏 (共13课时)
  • 提升SEO效率:2025年真正有效的8款AI工具终极清单
  • Day 37 MLP神经网络的训练
  • 力扣hot100:搜索插入位置
  • 探索含光伏、火电与飞轮储能系统的奇妙调频之旅
  • 高效获取高质量外链:2026年必须掌握的10个核心策略
  • Flutter国际化(i18n)实现详解
  • 【高可用系统监控的设计原则与实践】
  • 基于 STM32 的太阳能 MPPT 充电控制器设计
  • 30分钟掌握Semgrep:代码安全检查从入门到精通
  • YOLOv13涨点改进 | 独家创新首发、Conv卷积改进篇 | SCI一区 2025 | 引入MSConvStar多尺度卷积星形模块,有效增强捕捉多范围特征,助力目标检测、图像分割、图像分类高效涨点
  • LLC谐振变换器恒压恒流双竞争闭环Simulink仿真探索
  • YOLOv13涨点改进 | 全网独家创新、Neck特征融合改进篇 | TGRS 2025顶刊 | 引入ADSF自适应特征融合模块,自适应融合浅层特征与深层特征,适合红外小目标检测、图像分割等有效涨点
  • 折叠与影像:高端手机技术演进的两大方向
  • Feign基本知识
  • 每天一个假设-day5:如何提高测试人员和开发人员的协作效率
  • 常用软件工具的使用(1) ---- git 的安装和基础操作
  • 视觉色选机:如何挑选技术可靠与服务完善的设备厂家
  • YOLOv11涨点改进 | 全网独家创新、Neck特征融合改进篇 | TGRS 2025顶刊 | 引入ADSF自适应特征融合模块,自适应融合浅层特征与深层特征,适合红外小目标检测、图像分割等有效涨点