个人学习---Java流程控制

Java流程控制

基于Scanner类的用户交互

在Java的流程控制中,通过Scanner类 来获取用户的输入,基本用法如下:

  1. 创建一个扫描器对象,用于接收键盘数据,如下式所示。

                    Scanner s = new Scanner(System.in);

  2. 在读取输入字符串前,一般需要使用hasNext() 和 hasNextLine() 来判断是否还有输入的数据,如下式所示。

                    if(scanner.hasNext()){}
                    if(scanner.hasNextLine()){}

    注:还可以通过使用hasNextInt()、hasNextFloat、hasNextDouble 来判断输入是否为整数输入、小数输入以及输入是否为数字,如下图所示。

    个人学习---Java流程控制_第1张图片
  3. 通过next() 和 nextLine() 方法来获取输入的字符串,如下式所示。

                    String str = scanner.next();
                    String str = scanner.nextLine();

    注:

    1. next()方法,以空格作为结束符 ,在有效字符之前的空格,next()方法会将其去掉,在有效字符之后的空格,next()方法会将其视为分隔符或结束符。综上:next()方法不能够得到带有空格的字符串,但使用next()方法可以实现数字的多次间隔输入。

    2. nextLine()方法,以回车(Enter)作为结束符 ,获得回车前的所有字符。综上:nextLine()方法可以获得空格的输入。

  4. 在输入完毕后,需要结束Scanner类 ,如下式所示。

                        scanner.close();

    注:凡是属于IO流(输入输出流)的类,如果不关闭会一直占用资源,故应该在用完后就结束。

输入效果,如下图所示。

个人学习---Java流程控制_第2张图片

java结构

  1. 顺序结构

    Java的基本结构,从上到下,按顺序一句句执行。

  2. 选择结构

    1. if单选结构,如下式所示。

      个人学习---Java流程控制_第3张图片
    2. if双选结构,如下图所示。

      个人学习---Java流程控制_第4张图片
    3. if多选结构,如下图所示。

      个人学习---Java流程控制_第5张图片

      注:其中有一个else if 检测为true,那么其他的else if以及else都将跳过执行。

    4. 嵌套if结构,如下图所示。

      个人学习---Java流程控制_第6张图片

      注:流程控制语句都可以进行相互嵌套!

    5. switch多选结构,更适用于具体值的匹配问题,如下图所示。

      个人学习---Java流程控制_第7张图片

      其中,自JDK7以后,表达式结果可以为字符串。另外,case具有穿透性,需要在case语句后添加break语句来解决穿透性问题。

    补:equals()方法,可以用来判断字符串是否相等。

    eg:a.equals(b),表示a是否与b相等,如下图所示。

    个人学习---Java流程控制_第8张图片
  3. 循环结构

    1. while循环 ,如下图所示。

      个人学习---Java流程控制_第9张图片

      注:

      1. 大多数情况下是会让循环停止下来的,故需要一个让表达式失效的方式。

      2. 少部分情况下会让循环一直执行,如服务器请求响应、监听等。

    2. do while循环 ,如下图所示。

      个人学习---Java流程控制_第10张图片

      区别:while语句是先判断,后执行;do while语句是先执行,后判断,即使是不满足条件,也要至少执行一次。

    3. for循环 ,for循环结构让循环结构更加简单。这一循环,在循环前就已经明确循环的执行次数,如下图所示。

      个人学习---Java流程控制_第11张图片

      注:

      1. 可通过快捷方式100.for的形式快速生成循环语句,生成语句如下式所示。

                    for(int i = 0; i < 100; i++){}

      2. 初始化初值时,只可以声明一个类型,但可以初始化一个或多个循环控制变量。条件判断和迭代也可以相应地增加变量,如下图所示。

      3. for( ; ; ) 为死循环。

    4. 加强for循环 ,目的是为了更好地遍历数组和集合对象,如下图所示。

      个人学习---Java流程控制_第12张图片

Break、Continue以及Label

  • break 用于强制退出循环,不执行循环中的剩余语句,如下图所示。

    个人学习---Java流程控制_第13张图片
  • continue 用于终止某次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定,如下图所示。

    个人学习---Java流程控制_第14张图片
  • label(标签),在使用break、continue进行中断时,会中断到存在标签的地方,不建议使用!!!如下图所示。

    个人学习---Java流程控制_第15张图片

补充知识:反编译文件

IDEA提供反编译文件功能,将输出文件中的.class文件,直接拖到IDEA中,双击打开,即可看到反编译文件。

你可能感兴趣的:(学习,java,intellij-idea)