学习来源: 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili

Java流程控制

用户交互Scanner

获取用户的输入

  • 基本语法
  1. Scanner s = new Scanner(System.in);
  • 通过Scanner类的next()与next()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据
  1. package com.xxx.scanner;
  2. import java.util.Scanner;
  3. public class Demo01 {
  4. public static void main(String[] args) {
  5. //创建一个扫描器对象,用于接收键盘数据
  6. Scanner scanner = new Scanner(System.in);//Alt+Enter自动补全
  7. System.out.println("使用next方式接收:");
  8. //判断用户有没有输入字符串
  9. if (scanner.hasNext()){
  10. //使用next的方式接收用户的输入
  11. String str = scanner.next();
  12. System.out.println("输入的内容为:"+str);
  13. }
  14. //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
  15. scanner.close();
  16. }
  17. }
  1. package com.xxx.scanner;
  2. import java.util.Scanner;
  3. public class Demo02 {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. System.out.println("使用nextLine方式接收:");
  7. if (scanner.hasNextLine()){
  8. String str = scanner.nextLine();
  9. System.out.println("输出的内容是:"+str);
  10. }
  11. scanner.close();
  12. }
  13. }

Scanner对象

next():

  1. 一定要读取到有效字符后才可以结束输入
  2. 对有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 只有输入有效字符后将其后面输入的空白作为分隔符或者结束符
  4. next()不能得到带有空格的字符串

nextLine():

  1. 以Enter为结束符 也就是说nextLine()方法返回的是输入回车之前的所有字符
  2. 可以获得空白
  1. package com.xxx.scanner;
  2. import java.util.Scanner;
  3. public class Demo03 {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. System.out.println("请数据数据——使用nextline方式接收:");
  7. String str = scanner.nextLine();//这一句用来接收数据
  8. System.out.println("输出的内容是:"+str);
  9. scanner.close();
  10. }
  11. }
  1. package com.xxx.scanner;
  2. import java.util.Scanner;
  3. public class Demo04 {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. //从键盘接收数据
  7. int i = 0;
  8. float f = 0.0f;
  9. System.out.println("请输入整数:");
  10. if (scanner.hasNextInt()){
  11. i = scanner.nextInt();
  12. System.out.println("整数数据为:"+i);
  13. }else{
  14. System.out.println("你输入的不是整数数据!");
  15. }
  16. System.out.println("请输入小数:");
  17. if (scanner.hasNextFloat()){
  18. f = scanner.nextFloat();
  19. System.out.println("小数数据为:"+f);
  20. }else{
  21. System.out.println("你输入的不是小数数据!");
  22. }
  23. scanner.close();
  24. }
  25. }
  1. package com.xxx.scanner;
  2. import java.util.Scanner;
  3. public class Demo05 {
  4. public static void main(String[] args) {
  5. //我们可以输入多个数字,并要求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
  6. Scanner scanner = new Scanner(System.in);
  7. //和
  8. double sum = 0;
  9. //计算输入了多少个数字
  10. int m = 0;
  11. System.out.println("请输入数字:");
  12. //通过循环判断是否还有输入,并在里面对每一次进行求和和统计
  13. while (scanner.hasNextDouble()){
  14. double x = scanner.nextDouble();
  15. //输入完一个数,让m+1
  16. m = m + 1;//m++
  17. sum = sum + x;
  18. System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum+"请输入下一个数据:");
  19. }
  20. System.out.println(m+"个数的和为"+sum);
  21. System.out.println(m+"个数的平均值是"+(sum / m));
  22. scanner.close();
  23. }
  24. }

顺序结构

程序默认的结构,自上而下的执行

他是任何一个算法都离不开的一种基本算法结构

选择结构

  • if
  • switch
  1. if (){

}

  1. if (){

}else{

}

  1. if (){

}else if ({

}

if的嵌套

  1. switch (){

case ():

break;

}

case穿透

循环结构

  • while 先判断后执行
  • do…while 先执行后判断,即使不满足循环,也至少执行一次
  • for循环
  1. while(){

}

  1. for (初始值;布尔表达式;更新){

}

最先执行初始化步骤,可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。

快捷书写:

fori

100.for

死循环:for( ; ; )

  1. package com.xxx.circle;
  2. /*
  3. 1*1=1
  4. 2*1=2 2*2=4
  5. 3*1=3 3*2=6 3*3=9
  6. 4*1=4 4*2=8 4*3=12 4*4=16
  7. 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
  8. 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
  9. 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
  10. 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
  11. 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
  12. */
  13. public class Demo02_99 {
  14. public static void main(String[] args) {
  15. for (int i = 1; i <= 9; i++) {
  16. for (int j = 1; j <= i; j++) {
  17. System.out.print(i+"*"+j+"="+i*j + '\t');
  18. }
  19. System.out.println();
  20. }
  21. }
  22. }
  1. 增强型for循环 for-each

for(声明语句:表达式){

//代码句子

}

  1. package com.xxx.circle;
  2. public class Demo03 {
  3. public static void main(String[] args) {
  4. int[] numbers = {10,20,30,40,50};
  5. for (int i = 0; i < 5; i++) {
  6. System.out.println(numbers[i]);
  7. }
  8. System.out.println("===================");
  9. //增强for循环,用来循环数组和集合
  10. for(int x:numbers){
  11. System.out.println(x);
  12. }
  13. }
  14. }

4.break&continue

  • break 用于强制退出循环,只是退出循环,不执行循环中剩余的语句,但不会终止程序
  • continue 终止当次循环,即跳过循环中尚未执行的语句,接着进行下一次是否执行循环的判定
  • goto带标签,java没有goto,但是可以通过标签的形式寻找goto的影子
    • “标签”是指后面跟着一个冒号的标识符
    • 对于java来说唯一用到标签的地方就是循环语句之前。而在循环之前设置的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,他们就会中断到存在标签的地方
  • return:结束方法的运行

练习

  1. package com.xxx.circle;
  2. public class Test01 {
  3. public static void main(String[] args) {
  4. //打印三角形
  5. for (int i = 1; i <= 5; i++) {
  6. for (int j = 5; j >= i; j--) {
  7. System.out.print(" ");
  8. }
  9. for (int k = 1; k <= i; k++) {
  10. System.out.print("*");
  11. }
  12. for (int m = 1; m < i; m++) {
  13. System.out.print("*");
  14. }
  15. System.out.println();
  16. }
  17. }
  18. }

学习笔记-Java流程控制的更多相关文章

  1. JavaSE学习笔记03流程控制

    Java流程控制 1.顺序结构 java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句往下执行. 顺序结构是最简单的算法结构,它是任何一个算法都离不开的一种基本算法结构. 2. 选择结构 ...

  2. 【原】Java学习笔记005 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 程序的流程控制(流 ...

  3. Python学习笔记 - day4 - 流程控制

    Python流程控制 Python中的流程控制主要包含两部分:条件判断和循环. Python的缩进和语法 为什么要在这里说缩进和语法,是因为将要学习的条件判断和分支将会涉及到多行代码,在java.c等 ...

  4. PYTHON 学习笔记2 流程控制工具以及函数定义、匿名函数

    前言 在上一节的学习中.已经介绍了几种基本类型.包括字符串的定义,以及字符串中索引.切片.字符串拼接的使用方法.以及基本的整形数据运算.一些之前都没有了解过的运算符.比如 ** 乘方 //整数除法等. ...

  5. C#学习笔记_04_流程控制

    04_流程控制 程序的执行结构: 顺序结构 分支结构 循环结构 可以通过某些特定的控制语句来控制代码的执行结构 分支流程控制 if else 基本语法 可以只有if没有else,但是不能没有if只有e ...

  6. Java学习笔记五——流程控制

    分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > ...

  7. 【原】Java学习笔记007 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // for循环 // ...

  8. 【原】Java学习笔记006 - 流程控制

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:写一万次&q ...

  9. Python学习笔记:流程控制

    单分支: if 条件: 满足条件后执行的代码 程序举例: leiyu=28if leiyu > 22: print("You can find girl friend..." ...

  10. Java学习笔记之:Java流程控制

    一.介绍 Java流程控制包括顺序控制.条件控制和循环控制. 顺序控制,就是从头到尾依次执行每条语句操作.条件控制,基于条件选择执行语句,比方说,如果条件成立,则执行操作A,或者如果条件成立,则执行操 ...

随机推荐

  1. epoll分布式通讯

    参考http://www.xmailserver.org/linux-patches/nio-improve.html  epoll通讯 参考https://blog.csdn.net/yangqua ...

  2. 《自定义工作流配置,springboot集成activiti,前端vue,完整版审批单据》

    前言 activiti工作流引擎项目,企业erp.oa.hr.crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求. 一.项目形式 springboot+v ...

  3. 843. n-皇后问题

    题目: 这 道 题 呢 唯 一 一 点 与 其 他 题 目 不 同 之 处 就 是 它 有 有 3 个 v i s 数 组 以及是一行一行深搜的. 主要思路为: 从第一行 到第n行,一行放一个,这一行 ...

  4. vue+element 返回数组或json数据自定义某列显示的处理--两种方法

    本文是作者开发一个业务需求时,将返回数据列表的其中一个数据长度很长的字段处理成数组,并将其作为子表显示的过程,具体样式如下(数据做了马赛克处理) 返回的过长字段数据处理(用分号分隔的一个长字段): t ...

  5. Ubuntu18.04中用CMake-gui安装OpenCV3.2.0和OpenCV_contrib-3.2.0

    下载和添加依赖包1.首先更新 apt-get,在安装前最好先更新一下系统,不然有可能会安装失败.在终端输入:    sudo apt-get update    sudo apt-get upgrad ...

  6. steamdeck使用SSH远程控制

    为了方便去折腾steamdeck,我想用Windows11远程控制steam deck,我开始在网上查找Linux远程控制的方法,决定使用SSH来达到目的. 首先开始查看我的steamdeck的ip地 ...

  7. 四:SSM框架整合

    四:SSM框架整合 Spring+Spring Mvc+Mybatis整合: 代码实现: 1.创建maven工程 pom.xml   <dependencies><!--  spri ...

  8. Kali Linux Web 渗透测试秘籍 中文版

    第一章 配置 Kali Linux 简介 在第一章中,我们会涉及如何准备我们的 Kali 以便能够遵循这本书中的秘籍,并使用虚拟机建立带有存在漏洞的 Web 应用的实验室. 1.1 升级和更新 Kal ...

  9. Android  JetPack~ ViewModel (一)   介绍与使用

      Android数据绑定技术一,企业级开发 Android数据绑定技术二,企业级开发 Android  JetPack~ DataBinding(数据绑定)(一)    集成与使用 Android ...

  10. Python核对遥感影像批量下载情况的方法

      本文介绍批量下载遥感影像时,利用Python实现已下载影像文件的核对,并自动生成未下载影像的下载链接列表的方法.   批量下载大量遥感影像数据对于GIS学生与从业人员可谓十分常见.然而,对于动辄成 ...