Java03:流程控制

Java流程控制

一、用户交互Scanner

1、Scanner对象

  1. 说明:

·需要导入java.util.Scanner包 ;

·Java5的新特征,可以通过Scanner类来获取用户的输入。

·通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()和hasNextLine()判断是否还有输入的数据。

  1. 基本语法:
import java.util.Scanner;//导入Scanner类
Scanner s = new Scanner(System.in);//
s = scanner.nextLine();//让用户输入数据,存到变量s中,以回车结束
  1. 注意事项:

  1. Scanner其他用法:根据输入,返回布尔值

语法:scanner.hasNext数据类型()方法:

举例:scanner.hasNextInt();如果输入的是Int类型,则返回true,否则返回false,可用于if、while等条件判断中。

二、顺序结构

java的基本结构,即按照顺序一句一句执行。

三、选择结构

1 if条件判断

  1. if单选择
if(布尔表达式){
    //布尔表达式为true时执行语句块内语句
}
  1. if双选择
if(布尔表达式){
    //布尔表达式为true时执行语句块内语句
}else{
    //布尔表达式为false时执行语句块内语句
}
  1. if多选择
if(布尔表达式1){
    //布尔表达式1为true时执行语句块内语句
}else if(布尔表达式2){
    //布尔表达式2为true时执行语句块内语句
}else if(布尔表达式3){
    //布尔表达式3为true时执行语句块内语句
}else{
    //以上布尔表达式均为false时执行语句块内语句
}
  1. 镶嵌的if结构
if(布尔表达式1){
    //布尔表达式1为true时执行语句块内语句
    if(布尔表达式2){
        //布尔表达式2为true时执行语句块内语句
    }
}
  1. switch多选择结构

描述:

  • switch case语句也可实现多选择结构。
  • switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为1个分支。

规则:switch中的变量类型可以是:

  • byte、short、int或者char
  • Java SE7以后,switch才支持字符串String类型
  • case标签必须为字符串常量或字面量

语法:

switch(expression){//以表达式的返回值来判断
    case value1:
        //语句块
        break;//跳出switch语句,非必需
    case value2:
        //语句块
        break;
    default://默认的一般情况下,无条件执行
        //语句块
}

*反编译:

生成.java文件→

生成.class文件(字节码)→反编译执行(用IDEA)

四、循环结构

1while循环

while(布尔表达式){
    //布尔表达式为true,一直循环
}

大多数情况会让循环停下来,需要一个让表达式失效的方式来结束循环

2do...while循环

即使不满足条件,也至少执行一次。do...while会先执行1次,再进行判断

do{
	//代码语句
}while(布尔表达式);

3for循环

描述:

  • for循环语句是支持迭代的一种通用结构,是最灵活、最有效的循环结构。
  • for循环使一些循环结构变得更加简单
  • for循环执行的次数在执行前就确定了。
for(初始化;布尔表达式;更新){
	//代码语句
}

说明:

  1. 最先执行的是初始化步骤,可以声明一种类型、可以初始化1个或多个循环控制变量,也可以初始1个空语句
  2. 然后,检测布尔表达式的值,true则循环体执行,为false则循环终止,执行循环体后面的语句。
  3. 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)
  4. 最后再次检测布尔表达式,循环执行上面的过程。
  5. 以下形式为for循环下的死循环
for(;;){
    
}

IDEA快捷键:

//100.for等效于
for (int i = 0; i < 100; i++) {   
   }    

4增强for循环

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

主要用于数组或者集合

声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此事数组元素的值相等。

表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

五、break&continue&goto

1break

在任何循环语句的主题部分,均可用break控制循环的流程。break用于强行退出循环,不再执行循环中剩余的语句。(在switch语句中也可使用)

2continue

用在循环体语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

3goto

goto是Java的一个保留字,但Java中的goto没有功能。可以通过带标签的break和continue实现goto的功能。

标签是指后面跟着一个冒号的标识符,如:label:

对Java来说,唯一用到标签的地方实在循环语句之前。在循环值钱设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但随同便签使用,它们就会中断到存在标签的地方。

六、练习

利用循环:

  1. 打印九九乘法表
  2. 打印正三角形
posted @ 2021-02-24 15:54  程序员不能懒  阅读(63)  评论(0)    收藏  举报