2.流程控制

Posted 付宇泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.流程控制相关的知识,希望对你有一定的参考价值。

Scanner对象

  • java.util.Scanner 是Java5的新特性,可以通过Scanner类来获取用户的输入

  • 基本语法

    Scanner s = new Scanner(System.in);
    
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

  • next():

    • 一定要读取到有效字符后才可以结束输入
    • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
    • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
    • next()不能得到带有空格的字符串
    import java.util.Scanner;
    
    public class Demo01 {
        public static void main(String[] args) {
            //创建一个扫描器对象,用于接收键盘数据
            Scanner scanner = new Scanner(System.in);   //Hello World
    
            System.out.println("使用next方式接收:");
    
            //判断用户有没有输入字符串
            if (scanner.hasNext()){
                //使用next方式接收
                String str = scanner.next();
                System.out.println("输出的内容为:"+str);   //Hello
            }
    
            //凡是属于IO流的类如果不关闭会一直占用资源
            scanner.close();
        }
    }
    
  • nextLine():

    • 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
    • 可以获得空白
    import java.util.Scanner;
    
    public class Demo01 {
        public static void main(String[] args) {
            //创建一个扫描器对象,用于接收键盘数据
            Scanner scanner = new Scanner(System.in);   //Hello World
            
            String str = scanner.nextLine();
            
            System.out.println("输出的内容为:"+str);   //Hello World
        	}
    	}
    }
    
  • Next+类型:

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = 0;
        float f = 0.0f;
    
        if (scanner.hasNextInt()){
            i = scanner.nextInt();
        }else if(scanner.hasNextFloat()){
            f = scanner.nextFloat();
        }
    
        System.out.println("整数:" + i);
        System.out.println("小数:" + f);
    
        scanner.close();
    }
    

顺序

从上到下依次执行,是任何一个算法都离不开的一种基本算法结构。

选择结构

  • if单选择结构

  • if双选择结构

  • if多选择结构

  • 嵌套的if结构

  • switch多选择结构

    • switch语句中的变量类型可以是

      • byte、short、int或者是char
      • Java SE 7开始 支持switch字符串String类型
      • case标签必须为字符串常量或字面量
      public static void main(String[] args) {
          char grade = \'C\';
      
          switch (grade){
              case \'A\':
                  //操作
                  break;
              case \'B\':
              case \'C\':
              case \'D\':
              case \'E\':
              default:
      
          }
      }
      

循环结构

  • while循环

    while(布尔表达式){
        
    }
    
  • do…while循环

    do{
       
    }while(布尔表达式)
    
  • for循环

    for(初始值;布尔值;迭代){
        
    }
    
  • Java5中引入主要用于数组的增强型for循环

    • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
    • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
    for(声明语句 : 表达式){
        
    }
    

标签

标签与continue, break结合使用可以跳到标签设定位置

//打印101-150所有质数
outer:for(int i = 101;i<150;i++){
	for(int j = 2;j<i/2;j++){
        if (i % j == 0){
            continue outer;
        }
    } 
    System.out.print(i+" ")
}

以上是关于2.流程控制的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

PHP中的流程控制

在导航控制器中杀死片段

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段

Android 逆向ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )(代码片段