用户交互scanner、方法与计算器

用户交互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;
        }
    }
 ​
    }
 ​
 ​

 

 


 ​
 ​

 

 

 

上一篇:Java(1)dos


下一篇:变量转换2(容量溢出)