Java初学者之简介流程控制方式

Java流程控制

用户交互Scanner

​ Java提供的一个工具类:java.util.Scanner,我们可以通过Scanner类来获取用户的输入。

凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯,使用完就关掉

​ 关闭的语法:scanner.close();

基本语法

Scanner s = new Scanner(System.in);

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

next():

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

即:一般来说,使用next()方法在读取到输入的空格时就会结束读取

nextLine():

  1. 以Enter(回车)为结束符,即使用nextLine()方法可以获取到回车之前的所有字符
  2. nextLine()可以获得空白符

​ hasNext()与hasNextLine()类比next()和nextLine()

顺序结构

​ Java的基本结构就是顺序结构,除非特别指明,否则将按照自上而下的顺序依次执行

选择结构

if单选泽结构

语法

if(布尔表达式){
    
    
    //如果布尔表达式为true将执行的语句
}

if双选泽结构

if(布尔表达式){
    
    
    //如果布尔表达式为true将执行的语句
}else{
    
    
    //如果布尔表达式为false将执行的语句
}

if多选泽结构

if(布尔表达式1){
    
    
    //如果布尔表达式1为true将执行的语句
}else if(布尔表达式2){
    
    
    //如果布尔表达式2为true将执行的语句
}else if(布尔表达式3){
    
    
    //如果布尔表达式3为true将执行的语句
}else{
    
    
    //如果以上布尔表达式都不为true将执行的语句
}

嵌套的if结构

if(布尔表达式1){
    
    
    //如果布尔表达式1为true将执行的语句
    if(布尔表达式2){
    
    
    	//如果布尔表达式2为true将执行的语句
	}else{
    
    
        //如果布尔表达式2为false将执行的语句
    }
}else{
    
    
    //如果布尔表达式1为false将执行的语句
}

switch多选择结构

switch(X){
    
     //X的类型可以是byte,short,int或者char(从Java SE 7开始 X支持String类型了)
    case A://判断X==A,若为true,则执行语句1,否则跳到近的下一个case或者default
        //语句1
        break;		//可选
     case B://判断X==B,若为true,则执行语句2,否则跳到近的下一个case或者default
        //语句2
        break;		//可选
     case C://判断X==C,若为true,则执行语句3,否则跳到近的下一个case或者default
        //语句3
        break;		//可选
     case D,case E,case F://判断X==D,X==E,X==F,若其中有一个为true,则执行语句4,否则跳到最近的下一个case或者default
        //语句4
        break;		//可选
     default: 		//可选
        //语句5
}//case后的A,B,C,D,E必须为字符串常量或者字面量 

反编译(IDEA):

​ 在IDEA中,可以直接将.class文件放入src文件里然后打开

扫描二维码关注公众号,回复: 12915571 查看本文章

循环结构

while循环

while(布尔表达式){
    
    
    //循环内容 
}

​ 执行此代码时,先判断布尔表达式,若为true 则执行循环内容,执行完之后再次判断布尔表达式,若为真,则再次执行循环内容,直到表达式结果为false或者程序为死循环(尽可能避免死循环)

**执行次数:**0-N

do…while循环

do{
    
    
    //循环内容
}while(布尔表达式);

​ 先执行一次循环内容再判断布尔表达式,若为true,则继续执行循环内容,直到表达式结果为false或者程序为死循环(尽可能避免死循环)

**执行次数:**1-N

​ 注意:在do…while语句结束时,后面要加";"

***while和do…while的区别:***while先判断后执行,而do…while先执行后判断,do…while能保证至少执行一次,而while则可能一次都不执行

for循环

for(初始化;布尔表达式;更新){
    
    
   //循环内容
}

​ 在整个for循环中,初始化只执行一次,然后判断布尔表达式,若为true则执行循环内容,执行完循环内容之后执行更新,然后再进行布尔表达式判断,若为true则再次执行循环内容,然后再次更新再次判断,直到布尔表达式为false为止

​ 虽然使用while和do…while循环可以实现所有的循环要求,但是使用for循环是一种更高效的循环方式

在Java5中引入了一种主要用于数组的增强型for循环:

for(声明语句:表达式){
    
    
    //循环内容
}
//如:
int[] numbers = {
    
    10,20,30,40,50};//定义一个数组
for(int x : numbers){
    
    
    System.out.println(x);
}

​ 相当于让依次将数组numbers的值赋给x,并每一次重新赋值时执行一次{}中的语句

break&continue

**break:**在任何循环语句的主体部分均可使用break来控制循环流程,其作用是强行跳出循环去执行循环后的代码,不再执行循环中的其余部分

**continue:**用于跳出本次循环,不再执行本次循环中的剩余语句,直接进行下一次循环

​ break和continue可以使用标签,以其中一个为例:

one:for(;;){
    
    
    for(;;){
    
    
        //代码
       if(){
    
    
            continue one;
       }
        //代码
    }
}

​ 在以上代码中,若没有one标签,则在执行到continue语句时会自动跳转到下一次的内层for循环,但加上one标签后则会跳转到标签所标记的位置继续运行

猜你喜欢

转载自blog.csdn.net/Hassder/article/details/108911316