用户交互scanner
scanner类用于获取用户输入
语法:
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
1.next()方法用于获取输入字符串,hasNext()方法用于判断是否有输入的数据
//判断用户有没有输入字符串
if(scanner.hasNext())
//使用next方法接收
String str = scanner.next();
-
在读取到有效字符后才可以结束输入
-
对输入有效字符之前的空白,next()方法会自动将其去掉
-
只有输入有效字符后才将其后输入的空白作为分隔符或结束符
-
next()不能得到带有空格的字符
2.nextLine()方法、hasNextLine()方法与next()方法、hasNext()方法用法类似
//判断用户有没有输入字符串
if(scanner.hasNextLine())
//使用nextLine方法接收
String str = scanner.nextLine();
-
nextLine()方法可以输入回车前所有字符
-
可以获得空白
3.nextInt()方法用于获取输入整数,hasNextLine()方法用于判断输入是否为整数
-
任何基本数据类型都适用,如nextFloat()等
===========================================================
方法
1.定义:方法是一段完成特定功能的代码片段,类似C语言中的函数
2.语法:方法按照顺序由修饰符、返回值类型、方法名、参数类型与方法体构成
-
修饰符:定义方法的访问类型
-
返回值类型:方法可能有返回值,使用相应的数据类型,有些方法没有返回值,则使用关键字void
-
方法名:方法的实际名称
-
参数类型:方法被调用时,传递值给参数,参数分为实际参数与形式参数‘
-
形式参数:在方法被调用时接受外部数据的参数
-
实际参数:调用方法时传递的实际数据
-
-
方法体:方法体包含实际的语句,定义该方法功能
修饰符 返回值类型 方法名(参数类型 参数){
方法体
return 返回值;
}
3.方法调用:在调用方法时根据返回值主要分为两类
-
当返回一个值时,方法调用被当作一个值
数据类型 参数名 = 方法名(值)
-
如果返回值为void,方法调用时一条语句
Ststen.out.println(方法名)
方法的重载
1.定义:在一个类中,有相同的方法名,但形参不同
2.规则:
-
方法名必须相同
-
参数列表必须不同(个数、类型或排列顺序不同)
-
返回值可以相同也可以不同
可变参数
1.定义:当方法中形参数不确定时,可以使用可变参数
2.使用方法:
-
在方法声明中,在指定参数类型后加一个省略号
-
一个方法中只能有一个可变参数且必须时最后一个参数
递归
1.定义:方法自己调用自己
2.组成:
-
递归头:什么时候不调用自身的方法。没有递归头将陷入死循环
-
递归体:什么时候需要调用自身方法
=============================================================
使用scanner函数编写计算器
package mathod;
import java.util.Scanner;
public class Main1 { //使用一个方法接受第一个数字
public static int num1(){
int a = 0;
System.out.println("请输入第一个数字");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextInt()){
int i = scanner.nextInt();
a = i;
}
return a;
}
public static String operator(){ //接收运算符
String c ="0";
System.out.println("请输入运算符");
Scanner scanner = new Scanner(System.in);
if(scanner.hasNext()){
String i = scanner.next();
c = i;
}
return c;
}
public static int num2(){ //接受第二个数字
int b =0;
System.out.println("请输入第二个数字");
Scanner scanner = new Scanner(System.in);
if (scanner.hasNextInt()){
int i = scanner.nextInt();
b = i;
}
return b;
}
public static void main(String[] args) { //使用switch循环判断运算符并输出结果
String c ="0";
int a = 0;
int b = 0;
a = num1();
b = num2();
switch (operator()){
case "+":
System.out.println("运算结果为:");
System.out.println(a+"+"+b+"="+(a+b));
break;
case "-":
System.out.println("运算结果为:");
System.out.println(a+"-"+b+"="+(a-b));
break;
case "*":
System.out.println("运算结果为:");
System.out.println(a+"*"+b+"="+a*b);
break;
case "/":
System.out.println("运算结果为:");
System.out.println(a+"/"+b+"="+a/b);
break;
}
}
}