Java流程控制语句

Java流程控制语句

Scanner对象

  • 我们可以通过Scanner类来获取用户的输入

  • 基本语法

    • Scanner s = new Scanner(System.in);

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

  • next():

    1. 一定要读取到有效字符后才可以结束输入。

    2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。

    3. 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。

    4. next()不能得到带有空格的字符串

    5. package com.jie.scanner;

      import java.util.Scanner;

      public class Demo01 {
         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();
        }
      }

       

  • nextLine():

    1. 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。

    2. 可以获得空白。

    3. package com.jie.scanner;

      import java.util.Scanner;

      public class Demo02 {
         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("输出的内容为:"+str);
            }
        }
      }

Scanner对象进阶版

新增scanner.hasNextInt():判断输入的是不是int类型的数

scanner.nextInt():接受一个输入的int类型的数

package com.jie.scanner;

import java.util.Scanner;

public class Demo03 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);


       //从键盘接收数据
       int i= 0;
       float f = 0.0f;

       System.out.println("请输入整数");

       if (scanner.hasNextInt()){
           i = scanner.nextInt();
           System.out.println("整数数据"+i);
      }else {
           System.out.println("你输入的不是整数");
      }
       System.out.println("请输入小数");
       if (scanner.hasNextFloat()){
           f = scanner.nextFloat();
           System.out.println("小数数据"+f);
      }else {
           System.out.println("你输入的不是小数");
      }
       scanner.close();
  }
}

练习:我们可以输入多个数字,并求其和与平均数,没输入一个数字用回车确认通过输入非数字来结束输入并输出执行结果

package com.jie.scanner;

import java.util.Scanner;

public class Demo04 {
   public static void main(String[] args) {
       //我们可以输入多个数字,并求其和与平均数,没输入一个数字用回车确认
       //通过输入非数字来结束输入并输出执行结果

       Scanner scanner = new Scanner(System.in);
       double sum = 0;
       int m = 0;
       //通过循环判断是否还有输入,并在里面每一次进行求和统计
       System.out.println("请输入一个数字");
       while (scanner.hasNextDouble()){
           double x = scanner.nextDouble();
           m++;
           sum = sum+x;
           System.out.println("你输入了"+m+"个数字,当前结果为sum:"+sum);
      }
       System.out.println(m+"个数的和为"+sum);
       System.out.println(m+"个数的平均数是"+(sum/m));
       scanner.close();
  }
}

顺序结构

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

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

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

     

选择结构

  • if单选择结构

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

  • if双选择结构

  • if多选择结构

  • 嵌套的if结构

  • switch多选择结构

    • 多选择结构还有一个实现方式就是Switch case语句

    • switch case语句判断一个变量与一系列值中某个值是否相等,每个值称位一个分支。

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

      • byte、short、int或者char。

      • 从Java SE7开始

      • switch 支持字符串String 类型了

      • 同时case标签必须为字符串常量或字面量

        循环结构

        while循环

        • 结构:while(布尔表达式){

          //循环内容

          }

           

        do...while循环

        • do...while循环个while循环相似,不同的是,do...while循环至少会执行一次。

        • while和do...while的区别

          • while先判断后执行。dowhile是先执行后判断

          • do...while总是保证循环体会被至少执行一次!这hi是他们的主要差别

        For循环

        结构:

        for (int i=1;i<=100;i++){
           System.out.println(i);
        }
        System.out.println("for循环结束");

        练习一:计算0到100之间奇数和偶数的和

        package com.jie.struct;

        public class forDemo02 {
           public static void main(String[] args) {
               //连续1:计算0到100之间奇数和偶数的和
               int oddsum = 0;
               int evensum = 0;

               for (int i = 0; i < 100; i++) {
                   if (i%2!=0){//判断i是不是奇数
                       oddsum+=i;//迭代奇数的和
                  }else {//不是奇数就是偶数
                       evensum+=i;//迭代偶数的和
                  }
              }
               System.out.println("奇数的和为"+oddsum);
               System.out.println("偶数的和为"+evensum);
          }
        }

        练习2:用for循环输出1到1000能被5整除的数,并且每行输出三个

        package com.jie.struct;

        public class forDemo03 {
           public static void main(String[] args) {
               //练习2:用for循环输出1到1000能被5整除的数,并且每行输出三个
               for (int i = 1; i <=1000; i++) {
                   if (i%5==0){//能被5整除的数
                       System.out.print(i+"\t");
                  }
                   if (i%(3*5)==0){//换行
                       System.out.println();
                  }
              }
          }
        }

        3.打印99乘法表

        package com.jie.struct;
        //打印99乘法表
        public class forDemo04 {
           public static void main(String[] args) {
               //1.我们先打印出第一列 (里面的for循环)
               //2.我们把固定的1再用一个循环包起来
               //3.去掉重复项i<=j 不然里面的循环每一次都会循环9次
               //4.调整样式
               for (int j = 1; j <=9; j++) {
                   for (int i = 1; i <=j; i++) {
                       System.out.print(i+"*"+j+"="+(j*i)+"\t");
                  }
                   System.out.println();
              }
          }
        }

        增强For循环

        • Java5引用了一种主要用于数组或集合的增强型for循环。

        • Java增强for循环语法格式如下:

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

        //代码句子

        }

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

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

        barck continue

        • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。

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

        练习:打印三角形

        package com.jie.struct;

        public class TestDemo01 {
           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<i;j++){
                       System.out.print("*");
                  }
                   System.out.println();
              }
          }
        }

         

posted @ 2020-12-15 00:04  酷酷的西瓜皮  阅读(303)  评论(0)    收藏  举报