JavaSE基础(三)——Java流程控制

JavaSE基础(三)——Java流程控制

前言

本篇笔记记录Java的流程结构,同时还有一个小小的骚操作,本篇知识点对于有基础的同学来说较为简单,0基础的同学可以多看几遍。

骚操作

我们做的程序不能单单是让它自己运行,希望可以通过我们输入数据的不同得出不同的结果,就像C语言在可以使用scanf来从键盘获取输入的数据。Java中也有相关的工具类,一般我们使用Scanner工具类,具体路径是:

java.util.Scanner;

Scanner 是Java5中出现的新特性,程序可以通过Scanner类来获取用户输入的数据。具体如下:

Scanner scan = new Scanner(System.in);

Scanner 的方法

  • next():可以获取到你接下来从键盘输入的数据。
    • 读取到无效字符后会结束输入(空格为无效字符);
    • 对输入有效字符之前遇到的空白,该方法会自动将其去掉;
    • 该方法无法完整获取用空格键分割的字符。
Scanner scan = new Scanner(System.in);
System.out.println("请输入数据");
String str = scan.next();
System.out.println("您输入的数据是:" + str);
scan.close();
  • nextLine:
    • 以回车未结束符;
    • 可以获取空白。
Scanner scan = new Scanner(System.in);
SYstem.out.println("请输入数据");
String str = scan.nextLine();
SYstem.out.println("您输入的数据是" + str);
scan,cloase();
  • nextInt:接收整型数据;
  • nextFloat:接收浮点型数据。

Java流程控制

所谓流程,其实就是系统执行代码的书序以及路径,比如你写了100行代码,有一些代码你希望在某些情况不要执行;同时有希望某些情况下,使某些代码循环执行多次,这就需要用到流程控制这一概念,Java流程主要包括以下几个:

  • 顺序结构;
  • 选择结构;
  • 循环结构。

下面详细说明以下这三个结构的要点:

顺序结构

顺序结构是Java的基本结构,除非有特殊的控制,否则系统就会按照顺序执行我们所以写的代码。我们写的代码每一条都是由分号隔开(注意是英文的分号),被分号隔开的代码被称为语句,顺序结构就是指按照我们所书写的顺序一条接一条的执行;也可以把它理解为解决问题的一个步骤,每一个步骤都是要依次进行的。例如:

int a = 1;
int b = 2;
int c = a + b;
System.out.println("a + b = " + c);
// 以上代码就是顺序结构,我们需要依次定义两个加数以及定义一个接收结果的引用,然后才能计算加法等式,最后把结果输出。

选择结构

选择结构是一个很重要的结构,在每个人的日常生活中都会有选择,比如:今天我玩射手还是法师?晚上吃面条还是米饭?

在程序中我们也需要选择判断一个问题是否可行,然后根据我们判断的结果去选择用什么方式来解决,这种结构在程序中我们一般分为单选泽结构和多选择结构:

if单选泽结构

一般使用 if 语句来表示。

int a = 1;
// int a = -1;
if( a > 0 ){
    System.out.print("a大于0")}
System.out.println("程序结束");
/* 上面的代码表示,如果我们定义的变量a 的值为1,则输出结果为 a大于0 ,然后换行输出 程序结束;如果a 的值为-1,则直接输出程序结束 */

顾名思义,程序执行到if语句的时候,如果怎么怎么样,我们就怎么怎么样。if语句的括号中为判定条件,用布尔表达式来表示,如果表达式为真则执行if语句中的代码;如果表达式为假,则不执行if语句中的代码。

if双选择结构

与if 语句配套使用的还有一个 else 语句,else语句的含义是如果与之配套的if 语句中表达式为假,则直接执行else 语句中的代码。

【注】:else 语句与它最近的if 语句配套。

int a = 1;
// int a = -1;
if( a > 0 ){
    System.out.print("a大于0")}else{
    System.out.println("a小于0");
}
System.out.println("程序结束");
/* 上面的代码表示,如果我们定义的变量a 的值为1,则输出结果为 a大于0 ,然后换行输出 程序结束;如果a 的值为-1,则输出结果为 a小于0 ,然后换行输出 程序结束 */
if多选择结构

其实运行逻辑依旧基于if…else语句,只是我们在else语句后加入了if 语句进行判断执行,具体如下:

int score = 60;
if(score < 60 && score >= 0){
    System.out.println("不及格");
}else if(score >= 60 && score < 80){
    System.out.println("及格")
}else if(score >= 80 && score < 90){
    System.out.println("良好")
}else if(score >= 90){
    System.out.println("优秀")
}
if嵌套结构

嵌套结构其实很好理解,就是在if语句中加入判断,注意与多选择结构的区别,一个是在else后加判断,嵌套结构是在if语句中加判断,具体如下:

if(你听懂了){
    if(你会用了?){
        
    }
}
switch选择结构

switch选择结构是一个典型的多选择结构,该结构可以理解为走岔路。比如:你在一个全是门的房间里,你手里只有一把钥匙,且该要是只能打开一个门,具体如下:

switch(key1){
    case value1:
        break; // 这个是啥一会说。
    case valuew:
        break;
    default:
        break;
}
// 在这段代码中,key就是要使,value就是和要是配对的门。

当我们执行到这段代码时,会根据switch与剧中的参数在下面找到对应的value,找到之后会执行对应的语句。接下来说一下switch语句需要注意的地方:

  • switch语句中的变量类型可以是byte、short、int、char或String(Java7开始支持);
  • case后面的值智能为字符串或者字面量;
  • 在switch中可以在最后面加一个default,表示在所有的case中都没有找到相对应的选项,最后输出default的结构。
break

这个关键字的意思是跳出当前循环继续执行后的语句,switch不是循环结构,那在这里是什么意思呢,其实我个人理解是遇到break便结束当前语句,跳出该语句块,当前语句块的生命周期是什么,就是break所处的上一级花括号围起来的代码。需要注意的是,break只能跳出当前层级的语句块。

循环结构

循环结构一共有三种:

  • while循环;
  • do…while循环;
  • for循环(Java5之后出现了增强型for循环)。
while循环
while(布尔表达式){
    //  循环体
}
  • 只要布尔表达式为true,则会继续执行循环体;
  • 少部分情况需要一直执行,否则不许设定一个结束循环的限制;
  • 循环条件一般不能直接设置为true,否则会造成死循环影响系统进程。
do…while循环
do{
    // 循环体
}while(布尔表达式);
  • 这种循环会先执行一次循环体,无论表达式是否为真;
  • 其余的规则与while循环一样。
for循环
for(表达式1 ; 表达式2 ; 表达式3){
    循环体; 
}
  • 表达式1一般是定义循环的判定参数;
  • 表达式2一般是循环的判定条件;
  • 表达式3一般是被执行的循环体的一部分;
  • 执行顺序为:表达式1——》表达式2——》循环体——》表达式3——》表达式2——》循环体——》表达式3。
for循环增强

for循环的本质上只能循环遍历基本数据类型,如果是想对对象进行循环遍历的话就需要增强的for循环,底层本质上是迭代的方式来循环遍历的(迭代后续会有讲解,大概率的可能是在数据结构中)。增强型for循环的具体写法如下:

for(表达式1:表达式2){
    循环体;
}
  • 表达式1为每次循环时使用时,接收遍历数据的引用类型;
  • 表达式2位循环遍历的数据集合。

增强型的for循环在前期用的不多,后面涉及到集合的时候会有详细讲解。

continue

continue的作用其实很简单,官方解释是:结束本次循环并开始下次循环。

for(int i = 0 ; i < 10 ; i ++){
    if(i % 2){
        continue;
    }
    System.out.println(i);
}

以上代码用于输出个位偶素,但遇到奇数的时候会提前结束本次循环,进行下一次循环;如果i 为偶数,则会输出到屏幕上。

总结

本篇笔记简单的记录了一个小小的骚操作,剩下的篇幅都在记录JavaSE中的流程控制,流程控制是贯穿整个Java编程的基础操作,大家一定要牢记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值