用户交互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()等

使用实例:

 import java.util.Scanner;
 
 public class Scanner1 {
     public static int[] getArr(){
         System.out.print("请输入10个整数:"); //让用户输入的提示,
         java.util.Scanner sc = new Scanner(System.in);//获取Scanner类
         int[] arr = new int[10]; //创建一个int类型的数组,获取十个值
         for ( int i = 0; i < arr.length; i++){ //循环,从0开始,i也就是0,小于arr数组的长度(10),所以进行下面的代码进行迭代
             arr[i] = sc.nextInt(); //那么arr[0]接收到的数据就是用户输入的第一条数据
        }
         return arr;
    }
     public static int getnumber(){
         int i=0;
         System.out.print("请输入一个整数:");  //输入提示
         java.util.Scanner sc1 =new Scanner(System.in);
         if (sc1.hasNext()){    //判断用户是否输入
             i =sc1.nextInt();  //接收输入的数字
        }
         return i;
    }
     public static void main(String[] args) {
         int arr[];
         int i = 0;
         arr = new int[10];
         arr = getArr();     //接收用户输入的数组
         i = getnumber();    //接收用户输入的数字
         System.out.println("输入的数组为"+Arrays.toString(arr));   //输出数组
         System.out.println("输入的数字为"+i);      //输出输入的数字
    }
 
 }
 

 

===========================================================

方法

1.定义:方法是一段完成特定功能的代码片段,类似C语言中的函数

2.语法:方法按照顺序由修饰符、返回值类型、方法名、参数类型与方法体构成

  • 修饰符:定义方法的访问类型

  • 返回值类型:方法可能有返回值,使用相应的数据类型,有些方法没有返回值,则使用关键字void

  • 方法名:方法的实际名称

  • 参数类型:方法被调用时,传递值给参数,参数分为实际参数与形式参数‘

    • 形式参数:在方法被调用时接受外部数据的参数

    • 实际参数:调用方法时传递的实际数据

  • 方法体:方法体包含实际的语句,定义该方法功能

     修饰符  返回值类型  方法名(参数类型 参数){
         方法体
         return 返回值;
     }

3.方法调用:在调用方法时根据返回值主要分为两类

  • 当返回一个值时,方法调用被当作一个值

     数据类型 参数名 = 方法名(值)
  • 如果返回值为void,方法调用时一条语句

     Ststen.out.println(方法名)
  • 在不同的类中调用方法

    • 调用静态方法

       类名.方法名();
    • 调用非静态方法

       对象类型 对象名 = new 对象的值            //new一个这个类的对象
           类名.方法名();

方法的重载

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

 

 


 
 

 

 

 

面向对象

本质:以类的方式组织代码,以对象的组织(封装)数据。

特性:封装、继承、多态

  • 在不同的类中调用方法

    • 调用静态方法

       类名.方法名();
    • 调用非静态方法

       对象类型 对象名 = new 对象的值  //new一个对象
           类名.方法名();

       

 

 

posted @ 2022-02-23 18:39  谦谦子  阅读(97)  评论(0)    收藏  举报