Java流程控制

Java流程控制

Scanner对象

  • 之前我们学的基本语法中我们并没有实现程序与人的交互,但是java给我们提供了这样一个工具类,我们可以获取用户的输入。

    • java.util.Scanner
      
  • Scanner是java5的新特征,我们可以通过Scanner类来获取用户的输入。

  • 基本语法

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

    • next():
      • 一定要读取到有效字符后才可以结束输入
      • 对输入有效字符之前遇到的空包,next()方法会自动将其去掉
      • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
      • next()不能得到带有空格的字符串
    • nextLine():
      • 以回车(Enter)作为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
      • 可以获得空格(空白字符)

顺序结构

  • Java的基本结构局势顺序结构,除非特别指明,否则就按照顺序一句一句执行。

  • 顺序结构是最简单的算法结构

  • 语句与语句之间,框与框之间是按照从上到下的顺序进行的,它是由若干个一次执行的处理步骤组成的,它是任何一个算法都不能离开的一种基本算法结构。

结构(重点)

  • if单选择结构

    • 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示

    • 语法:

      • if(布尔表达式){
            //如果布尔表达式为true将执行的语句
        }
        
  • if双选择结构

    • if(xxxxx条件1){
          //满足条件14执行的程序语句
      }else{
          //不满足条件1的话执行的程序
      }
      
  • if多选择结构

    • /*
              if 语句之多有1个else语句,else语句在所有的else if语句之后
              if语句可以有若干个else if语句,它们必须在else语句之前
              一旦其中一个else if语句检测到条件为true,其他else if以及else语句豆浆跳过执行
               */
      
  • 嵌套的if结构

  • switch多选择结构

    • 在每一个case匹配对象之后,必须加上break中断,否则的话在匹配中case结果会穿透没有break之后的所有选项并且全部输出。

循环结构

  • while循环

  • do...while循环

  • for循环

  • java5 中引入了一种主要用于数组的增强型for循环

    • public static void main(String[] args) {
              int[] numbers = {10,20,30,40,50}; //定义了一个数组
      
              for(int i = 0;i<5;i++){
                  System.out.println(numbers[i]);
              }//这里是传统的for循环
              System.out.println("-----------------------------------------------");
              //遍历数组的元素
              for(int x: numbers){
                  System.out.println(x);
              }//这里是增强版的for循环
          }
      
  • break和continue

    • public static void main(String[] args) {
              int i = 0;
              while(i<100){
                  i++;
                  System.out.println(i);
                  if(i==30){
                      break;//  break用调出循环,爷不玩了,不干了
                  }
              }
              System.out.println(i);// 但是break不是终止程序,只是跳出了上面的while循环,这个输出是照常执行的
          }
      
  • goto

    • goto是指的是给循环体打上一个标签,如果不满足if中间的布尔值判断,我们可以指定跳转到循环体的开始部分

      •     public static void main(String[] args) {
          //打印101-150之间所有的质数
          //质数是指在大于1的自然数中,除了1和它本身意外不再有其他因数的自然数
          int count= 0;
        
          // 不建议使用
          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+" ");
        
          }
        
        

      }

posted @ 2022-10-14 17:03  狗屎圈  阅读(19)  评论(0)    收藏  举报