java流程控制【狂神说】小白笔记(4)

java 流程控制

用户交互Scanner

scanner 对象

java 提供了一个工具类,我们可以获取用户输入.

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

//基本语法
Scanner s= new Scanner(system.in);
//举例1 next 方法
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();
    }
}
//举例2 nextLine 方法
public class Demo01 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("使用next方式接受");
        if (scanner.hasNextLine()){
            //使用next 接受
            String str = scanner.nextLine();
            System.out.println("输出内容为:"+ str);
        }
        //凡是属于IO流(输入输出)的类如果不关闭会一直占用资源,要养成良好习惯,用完就关掉!!!
        scanner.close();
    }
}
//不用if 判断
public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);
        System.out.println("请输入数据:");
        String str=scanner.nextLine();
        System.out.println("输出内容为:"+str);
        scanner.close();
    }
}

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

两个方法的区别如下:

next():

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

nextLine():

  • 以回车为结束符,即nextLine 方法返回的是输入回车符之前所有的字符。

  • 可以获得空白(输入 Hello World 输出 Hello World)

一个小任务

import java.util.Scanner;

public class Demo05 {
    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 = m+1;
            sum = sum +x;

        }
        System.out.println(m +"个数的和为"+sum);
        System.out.println(m + "个数的平均值为" + sum/m);



        scanner.close();
    }
}

流程控制

  • 顺序结构

    java 基本结构为顺序结构:即从上到下一条一条执行。是任何一个算法都离不开的基本结构。

  • 选择结构

    1. if 单选择结构

      if (布尔表达式){
          //如果表达式==true则执行当前语句
      }
      
    2. if 双选择结构

      if (布尔表达式){
          //如果表达式==true则执行当前语句
      }else{
          //如果表达式==false则执行当前语句
      }
      
    3. if 多选择结构

      if (布尔表达式1){
          //如果表达式1==true则执行当前语句
      }else if(布尔表达式2){
          //如果表达式2==true则执行当前语句
      }else if(布尔表达式3){
          //如果表达式3==true则执行当前语句
      }else{
          //如果以上表达式均==false则执行当前语句
      }
      
    4. 嵌套 if 结构

      if (布尔表达式1){
          //如果表达式1==true则执行当前语句
          if(布尔表达式2){
          //如果表达式2==true则执行当前语句
      }
      
    5. switch 多选择结构

      匹配一个具体的值。支持 int,short,long,char,String(java7)

      如果不加break,那么在执行完当前case语句后,后面语句也会全部被执行。

      switch(expression){
          case value:
              //语句
              break;
          case value:
              break;
          default:
              //语句
      }
      
  • 循环结构

    1. while 循环

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

      只要布尔表达式为true,循环就会一直执行下去。

      我们大多数情况会让循环停止下来,我们需要一个让表达式失效的方式来结束循环

      少部分情况需要一直循环,例如服务器监听。

      尽量避免死循环!!

    2. do…while 循环

      对于while 语句而言,如果不满足条件,则不能进入循环,但有时我们需要及时不满足条件也至少执行一次!

      do…while 至少会执行一次。

      do{
          //代码语句
      }while(布尔表达式)
      

      两者区别

      while 先判断再执行

      do while 先执行后判断

    3. for 循环(重要!!!!)

      让循环结构变得简单

      for(初始化;布尔表达式;更新){
          //代码语句
      }
      /*
      几点说明:
      最先执行初始化步骤。可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句。
      然后检测布尔表达式的值,如果为true,循环体被执行,如果为false,循环终止,开始执行循环后面的语句。
      再次检测布尔表达式。循环执行上面过程
      */
      
      

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

      for(声明语句:表达式)
      {
          执行语句
      }
      
    4. break & continue&goto

      break:用来强行跳出循环,不执行循环中剩余语句!

      continue: 用于终止某次循环过程,即跳过循环体中尚未执行的语句,继续下一次是否执行循环的判定。

      goto:java 本身无goto。但可以通过break和continue+标签实现goto

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值