Java学习5--基础知识

发布时间:2024年01月24日
  • JAVA 流程控制
    • 用户交互scanner
    • 顺序结构
    • 选择结构
    • 循环结构
    • break & continue
    • 练习

用户交互scanner/Scanner 对象
java提供的工具,用来获取用户输入。
java.util.Scanner是Java5引入的特征,用的时候程序最顶上加引用源
import java.util.Scanner
具体用法是
Scanner x = new Scanner(System.in);
配合使用
String str=x.nextline();

解释说明:通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext() 与 hasNextLine()判断是否还有输入的证据。

next()和nextline()

  • next()

    • 一定要读取到有效字符后才可以结束输入。
    • 只要遇见空格,就停止读取,认为结束了。
  • nextline()

    • Enter为结束符,如果输入了空格也没有关系。
      记得用完要关闭,类似这样 xxx.close();
      最最简单的一段代码举例,
public static void main(String[] args) {
    //新定义了一个Scanner类型的x
        Scanner x=new Scanner(System.in);
    //将x新输入的内容给str
        String str= x.nextLine();
        System.out.println(str);
    //用完关闭,养成良好习惯
          x.close();
    }


(x.close();用完就关闭,是良好的使用习惯)

举例:
要求创建一个扫描器对象,用于接收键盘输入的一句话(两个单词以上),并将这句话输出。
分别使用next()和nexline()输出结果,观察有什么区别。

package 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();
    }
}


因为这句 String str = scanner.next();
所以如果输入了hello world 只是返回hello

使用nextLine() 这个用的多些

package 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);
        }
    }
}


因为这句String str =scanner.nextLine();
所以如果输入hello world则会返回hello world

类似的方法,也可使用hasNextFloat()或者hasNextInt()等 对输入数据的类型进行判断。

比如:输入两次,系统需要识别用户输入的内容分别是integer还是float。并产生对应的输出反馈。如果用户输入非数字,提示输入错误,如果输入数字,则返回该数字。

package scanner;

import java.util.Scanner;

public class Demo04 {

    public static void main(String[] args) {
        int i=0;
        float f=0.0f;
        Scanner x =new Scanner(System.in);
        System.out.println("please enter the integer: ");
        if(x.hasNextInt()) {
            i=x.nextInt();
            System.out.println("you have entered the integer: "+i);
        }
        else {
            System.out.println("you didn't enter a proper integer");
        }

        System.out.println("please enter a float:");
        if(x.hasNextFloat()){
            f=x.nextFloat();
            System.out.println("you have entered the float, which is: "+f);
        }
        else {
            System.out.println("you didn't enter the float");
        }
        x.close();
    }

}

please enter the integer: 
56
you have entered the integer: 56
please enter a float:
78
you have entered the float, which is: 78.0

Process finished with exit code 0

举例 求一堆数字的平均值与和

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

注意 这里用到了循环结构while

import java.util.Scanner;
public class testjan05{
    public static void main(String[] args) {
        System.out.println("please enter the numbers, use enter key after each numb and any other key to stop counting:"+"\n");
    Scanner x= new Scanner(System.in);
    int con=0;
    float num =0;
    float sum=0;
    float data =0;
    while (x.hasNextFloat()){
        con=con+1;
        num=x.nextFloat();
        sum=sum+num;
    }

    data=sum/con;
        System.out.println("you have entered "+con+" numbs and their sum is "+sum+" and average is "+data);
    }
}

输出结果:

please enter the numbers, use enter key after each numb and any other key to stop counting:

1
2
3
4
5
6
7
8
9
10
go
you have entered 10 numbs and their sum is 55.0 and average is 5.5

equal语句 判断A和B是否想等
B.equals("A")

import java.util.Scanner;
public class testjan05{
    public static void main(String[] args) {
        Scanner x= new Scanner(System.in);
        String s= x.next();
        if (s.equals("123")){
            System.out.println("hello dear!");}
        else
        { System.out.println("咒语错误,芝麻芝麻不开门");
        }
    }

}

switch语句
输入学生成绩A/B/C/D/或其他任何输入,返回
A-优秀
B-良好
C-合格
D-不及格
其它任意输入-输入不合法



import java.util.Scanner;
public class testjan05{
    public static void main(String[] args) {
        System.out.println("please enter the grade(A-D): "+"\n");
        Scanner x= new Scanner(System.in);
        if (x.hasNextLine()){
        String grade = x.nextLine();
        switch(grade){
            case "A":
            {System.out.println("优秀"); break;}
            case "B": {System.out.println("良好");break;}
            case "C": {System.out.println("合格");break;}
            case "D": {System.out.println("不及格");break;}
            default: {System.out.println("输入不合法");break;}

        }
        System.out.println();
    }
    }
}

输出结果

please enter the grade(A-D): 

niubi
输入不合法

文章来源:https://blog.csdn.net/weixin_42892630/article/details/135744939
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。