栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

狂神JAVASE系列-流程控制篇

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

狂神JAVASE系列-流程控制篇

1. 用户交互Scanner

1.1 Scanner对象:

  •    Java提供的一个工具类,利用Scanner类可以获取用户的输入。
  •     java.util.Scanner是java5新特性

1.2 基本语法

 Scanner scanner     = new Scanner(System.in);
  类     对象名(随便)
Scanner scanner = new Scanner(System.in);

......





scanner.close();

1.3 注意

        通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前通常会使用hashNext()与hashNextLine()判断是否还有输入的数据

示例:

package Lckz;

import java.util.Scanner;

public class Demon01 {
    public static void main(String[] args) {
        //创建一个扫描器对象 用于接收键盘输入
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");

        //判断用户是否输入字符串
        if(scanner.hasNext()){
            //使用next方式接收
            String str = scanner.next(); //程序会等待用户输入完毕
            System.out.println("输出的内容为: "+str);

        }
        //凡是属于IO流的类一定要记得关流操作
        //如果不关闭就会一直占用资源,要养成好的习惯用完就直接关掉
        scanner.close();
    }
}
package Lckz;

import java.util.Scanner;

public class Demon02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收: ");
        if(scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出的内容为: ");
        }
        scanner.close(); //关流操作


    }
}

 ====================================================================                             

                             next()方法和nextLine()方法对比:有什么区别?

总结如下:

        next():

  • 一定要读取到有效字符才可以结束输入。也就是必须的输入
  • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  • 例如:Hello World 输出Hello
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
  • next()不能得到带有空格的字符串。空格之后的就直接删了

        nextLine()

  • 以Enter作为结束符,即:nextLine()方法返回的输入回车之前地 所有字符
  • 可以获得空白。

其他用法:

    scanner.nextInt()              scanner.nextFloat()

2. 顺序结构

       自从而下 太简单

3. 选择结构    3.1 if单选结构  
语法:
if(布尔表达式){

    如果为真,执行的语句
}

   代码示例:

        

package struct;

import java.util.Scanner;

public class ifDemon01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容");
        String s = scanner.nextLine();
        if (s.equals("hello")){
            System.out.println(s);
        }
        System.out.println("End");
        scanner.close();
    }
}
  3.2 if双选结构
if(布尔表达式){

    语句A;  //布尔表达式的值为true
}else{

    语句B; //布尔表达式的值为false
}

   代码示例:

package struct;

import java.util.Scanner;

public class ifDemon02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int score = scanner.nextInt();
        if (score>60){
            System.out.println("及格");
        }else {
            System.out.println("不及格");
        }
        scanner.close();
    }
}
3.3 if多选择结构

语法:

if(布尔表达式1){

    如果1为真,执行语句A
}else if(布尔表达式2){
    如果2为真,执行语句B
}else if(布尔表达式3){
    如果2为真,执行语句C
}else{

    上述都不满足  执行语句D
}

代码示例:

package struct;

import java.util.Scanner;

public class ifDemon03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.println("输入您的成绩:");
        int score = scanner.nextInt();
        if (score==100){
            System.out.println("恭喜满分");
        }else  if(score<100&&score>=90){
            System.out.println("A");
        }else  if(score<90&&score>=80){
            System.out.println("B");
        }else  if(score<80&&score>=70){
            System.out.println("C");
        }else  if(score<70&&score>=60){
            System.out.println("D");
        }else{
            System.out.println("不合格");
        }

        scanner.close();

    }
}
    3.4 嵌套的if结构

语法:

if(布尔表达式1){
    if(布尔表达式2){
        
    }
}

代码示例:寻找一个数,在1-100之间

     3.5 switch多选择结构

语法:

switch(expression){

    case value1:
        执行语句A
        break; //可选
    case value2:
        执行语句B
        break;
    .....
    default:  //可选 意思是可有可无
        执行语句

}

注意点:不写break,会出现case穿透

代码示例:     

package struct;

public class switchDemon01 {
    public static void main(String[] args) {
        char rank = 'A';
        
      switch (rank){
          case 'A':
              System.out.println("优秀");
              break;
          case 'B':
              System.out.println("良好");
              break;
          case 'C':
              System.out.println("一般");
              break;
          case 'D':
              System.out.println("就那样");
              break;
          case 'E':
              System.out.println("呵呵");
              break;
      }
    }
}

switch总结

  • switch语句中的变量类型可以是,byte,short,int或者char
  • 从JAVASE 7开始,switch支持字符串String类型。
  • package struct;
    
    public class switchDemon02 {
        public static void main(String[] args) {
           String name = "EZ";
          //JDK7新特性,表达式的结果可以是字符串
          //反编译 java---->class(字节码文件)---------->反编译
            switch (name){
                case "EZ":
                    System.out.println("adc");
                    break;
                case "德玛":
                    System.out.println("上单");
                    break;
               
            }
        }
    }

    查看上面代码反编译后的结果

  • //
    // Source code recreated from a .class file by IntelliJ IDEA
    // (powered by FernFlower decompiler)
    //
    
    package struct;
    
    public class switchDemon02 {
        public switchDemon02() {
        }
    
        public static void main(String[] var0) {
            String var1 = "EZ";
            byte var3 = -1;
            switch(var1.hashCode()) {
            case 2229:
                if (var1.equals("EZ")) {
                    var3 = 0;
                }
                break;
            case 23854855:
                if (var1.equals("寰风帥")) {
                    var3 = 1;
                }
            }
    
            switch(var3) {
            case 0:
                System.out.println("adc");
                break;
            case 1:
                System.out.println("涓婂崟");
            }
    
        }
    }
4. 循环结构         4.1 while循环
  •   小部分情况需要循环一直进行,例如服务器请求响应监听等,、
  • 除此之外,大多数情况是会让循环停下来的。
  • 输出1-100
    int i = 0;
    while(i<100){
        i++;
        system.out.println(i)
    }

    代码示例:1+2+3+...+100                

package struct;

public class WhileDemon01 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 0;
        while (i<=100){
            sum = sum + i;
            i++;
        }
        System.out.println(sum);
    }
}
        4.2 do-while循环

                对于while而言,如果不满足条件,则无法进入循环,但是有时候我们需要即使不满足条件,也至少执行一次。

        while vs do-while

         (1) while先判断后执行,do-while先执行后判断

        (2)由(1)可知,do-while至少会执行一次。

语法结构:

do{
    执行语句    

}while(布尔表达式);
    
package struct;

public class WhileDemon01 {
    public static void main(String[] args) {
        int sum = 0;
        int i = 0;
        do {
            sum = sum + i;
            i++;
        }while (i<=100);
        System.out.println(sum);
    }
}
public class WhileDemon01 {
    public static void main(String[] args) {
        int a = 0;
        while (a<0){
            System.out.println(a);
            a++;
        }
        System.out.println("==============");
        do {
            System.out.println(a); // 0
            a++;
        }while (a>10);
    }
}
4.3 for循环

语法:      

for(初始化;布尔表达式;更新){
    //代码语句
}

关于for循环的几点说明:

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

        检测布尔表达式的值,如果结果为true,循环体被执行,否则被终止

        执行一次循环后,更新循环控制变量

for(;;i++){

}
///死循环
for(;;;){
}

fori tab快捷

示例1:计算0-100之间的奇数和偶数的和

public class WhileDemon01 {
    public static void main(String[] args) {
        //计算0-100之间的奇数和偶数的和
        int NumJs = 0;
        int NumOs = 0;
        for(int i=0;i<=100;i++){
            if (i%2==0){
                NumOs += i; //偶数累加
            }else {
                NumJs += i; //奇数累加
            }

        }
        System.out.println("奇数和偶数的和"+NumOs+NumJs);
    }

}

实例2:循环输出1-1000之间能被5整除的数,并且每行输出3个

public class WhileDemon02 {
    public static void main(String[] args) {
        //循环输出1-1000之间能被5整除的数,并且每行输出3个
        for (int i = 0; i < 1000; i++) {
           if(i%5==0){
               System.out.print(i+"t");
           }
           if(i%(5*3)==0){
               System.out.println("n");
           }
        }

        }

    }

示例3:   实现99乘法表

public class WhileDemon03 {
    public static void main(String[] args){
        
        for(int i=1;i<=9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(i+"*"+j+"="+i*j+"t");
            }
            System.out.println();
        }}


}

4.4 增强型for循环(java5中引入一种主要用于数组的增强型for循环)

        语法格式

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

}

        声明语句

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

        表达式

                要访问的数组名或者是返回值为数组的方法。

public class ForDemon01 {
    public static void main(String[] args) {
        int [] number = {10,20,30,40};
        //增强型for循环
        for(int x:number){ 
            System.out.println(x);
        }

    }
}

================================================
public class ForDemon01 {
    public static void main(String[] args) {
        int [] number = {10,20,30,40};
//普通for循环 
        for(int i=0;i<5;i++){
            System.out.println(number[i];
        }

    }
}
5. break & continue

        break:用于强行退出循环,不执行循环中剩余的语句(break语句也在switch语句中使用)

        continue:用于终止某次循环过程。

        goto:尽管goto是java的一个保留字,但未在语言中正式使用,也就是java中没有goto

带有标签的break和continue

代码示例:  

public class BreakDemon01 {
    public static void main(String[] args) {
        int i = 0;
        while(i<10){
            i++;
             
            if(i==8){
//                break;//输出8以后就跳出循环了  不执行了
                continue;//就跳出本次循环了  也就是输出8之前跳出去
            } System.out.println(i);
        }
    }

}
6.代码实践练习

打印 三角形

public class PracticeDemon01 {
    public static void main(String[] args) {
        //打印三角形
        for (int i = 1; i <=5 ; i++) {
            for (int j = 5; j >=i; j--) {
                System.out.print(" ");

            }
            for (int j = 1; j <=i ; j++) {
                System.out.print("*");
            }
            for (int j = 1; j  

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号