Java教程

Java流程控制(一)

本文主要是介绍Java流程控制(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java流程控制(一)

Scanner类

  1. 作用:

    • 可以通过Scanner类获取用户输入

      Scanner s = new(System.in);//将用户输入赋值给s
      
      • 使用next()或nextLine()方法获取输入的字符串

      • 在读取前一般用hasNext()与hasNextLine()判断是否还有 输入的数据

      • 用完scanner之后要调用close()方法关掉(节省资源)

        public class Demo1 {
            public static void main(String[] args) {
                Scanner s = new Scanner(System.in);//将用户输入赋值给s
                //通过hasNext每次判断是否有句子输入
                if(s.hasNext()){
                    String str = s.next();//识别一句,识别完一句之后光标移动到下一句,当再次用next()时会识别下一句
                    System.out.println("输出内容为:"+str);
                }
                s.close();//用完之后要关掉
            }
        }
        输入:sxw 
        输出:
            输出内容为:sxw
        
        public class Demo1 {
            public static void main(String[] args) {
                Scanner s = new Scanner(System.in);//将用户输入赋值给s
                //进行循环,每次判断是否还有句子,当没有句子时结束
                while(s.hasNext()){
                    String str = s.next();//识别一句,识别完一句之后光标移动到下一句,当再次用next()时会识别下一句
                    System.out.println("输出内容为:"+str);
                }
                s.close();//用完之后要关掉
            }
        }
        输入:ad fs gg
        输出:
            输出内容为:ad
            输出内容为:fs
            输出内容为:gg
        
  2. 方法:

    • next():

      • 只有读到有效字符后才能结束输入
      • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。(例:” sss“会成为"sss")
      • 对输入有效字符之后遇到的空白,会被作为分隔符或结束符。(例:”a1 b2 c3“会成为"a1" "b2" "c3")
      • next()不能得到带有空格的字符串
    • nextLine():

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

      • 可以获得空白

        public class Demo1 {
            public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                if (s.hasNext()){
                    String str=s.nextLine();
                    System.out.println("输出内容为:"+str);
                }
                s.close();//用完之后要关掉
            }
        }
        输入:ad fs gg
        输出:
            输出内容为:ad fs gg
        
        public class Demo2 {
            public static void main(String[] args) {
                Scanner s = new Scanner(System.in);
                    String str=s.nextLine();
                    System.out.println("输出内容为:"+str);
                s.close();//用完之后要关掉
            }
        }
        输入:ad fs gg
        输出:
            输出内容为:ad fs gg
        
      • hasNext():判断是否有数据输入

      • hasNextInt():判断是否有整数输入

      • hasNextDouble():判断是否有Double数据输入

      • hasNext..():判断是否有..数据输入(..中可以填入Int、Double等等)

      • next():读字符串(String类型)

      • nextDouble():读Double类型数据

      • nextInt():读Int类型数据

      • next..():读..类型数据

      • 例:输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:

        //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
        import java.util.Scanner;
        public class Demo2 {
            public static void main(String[] args) {
                Scanner scanner = new Scanner(System.in);
                double sum = 0;
                int num=0;
                //scanner.hasNextDouble()判断是否有Double类型的数据输入,如果不是Doule类型(比如x),则跳出循环
                while(scanner.hasNextDouble()){
                    sum+=scanner.nextDouble();
                    num++;
                }
                scanner.close();
                System.out.println("总和为:"+sum);
                System.out.println("平均数为:"+(sum/num));
            }
        }
        输入:
            20
            30
            40
            x
        输出:
            总和为:90.0
            平均数为:30.0
        
这篇关于Java流程控制(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!