Java03流程控制

JAVA流程控制

用户交互Scanner

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

Scanner S = new Scanner(system.in);

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

next()

  • 一定要读到有效字符后才可以结束输入
  • 对有效字符前的空白会自动过滤
  • 只有输入有效字符后才将其后输入的空白作为分隔符或结束符
  • next()不能得到带有空格的字符串 _hello_world->hello

nextLine()

  • 以Enter为结束符,会返回回车之前的所有字符
  • 可以获得空白
import java.util.Scanner;

public class Demo01 {

    public static void main(String[] args) {

        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        //快捷键 new Scanner(System.in) alt+enter

        System.out.println("使用next方式接收:");//hello world

        //判断用户有没有输入字符串
        if (scanner.hasNext()){
            //使用next方式接收
            String str = scanner.next();
            System.out.println("输出的内容为:"+str); //hello
        }

        //凡是属于IO流的类如果不关闭会一直占用资源,要用完就关闭
        scanner.close();

    }
}

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        //输入多个数字,并求其和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请任意输入多个数字,以ok结尾:");
        //和
        double sum = 0;
        //计算输入了多少个数字
        int m = 0;

        //通过循环判断是否还有输入,并每一次在里面求和
        while (scanner.hasNextDouble()){
            double x = scanner.nextDouble();
            m = m + 1;//m++;或者++m;或者 m=++m;但m=m++时,m始终为0
            sum = sum + x;
            System.out.println("你输入了第"+m+"个数,合计"+sum);
        }

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

        scanner.close();
    }
}

顺序结构

  • 最简单基本的结构

选择结构

  • if单选择结构 if(){}

  • if双选择结构 if(){}else{}

  • if多选择结构 if(){}else if(){}

  • 嵌套的if结构

  • switch多选择结构:具有穿透性,一般在每个case都加break跳出

    JDK7起switch支持String

反编译 看源码

循环结构

书签

  • while循环

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

    避免死循环,即表达式永远为true

  • do...while循环,至少循环一次

    do{
        //循环内容
    }while(表达式);
    
  • for循环☆

    最灵活、最有效的循环结构

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

    *快捷键 100.for

    *快捷键ctrl+D 复制当前行到下一行

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

    for(声明语句:表达式)
    {
        //代码
    }
    
    public class ForDemo05 {
        public static void main(String[] args) {
            int[] numbers = {10,20,30,40,50};//定义了一个数组
            //遍历数组的元素
            for(int x:numbers){//将数组中每一项逐个赋值给x
                System.out.println(x);
            }
            System.out.println("========等同于============");
    
            for (int i = 0;i<5;i++){
                System.out.println(numbers[i]);
            }
    
        }
    }
    

break&continue

  • break:用于强制跳出循环或switch
  • countinue:用于跳出某一次循环,进入下一个循环
  • 了解:关于goto关键字:goto仍是Java的一个保留字,但并未得到正式使用;类似于:带label的continue
posted @ 2020-11-04 11:49  mushr00m  阅读(66)  评论(0)    收藏  举报