Scanner的功能:可以实现键盘输入到程序当中 引用类型的一般使用步骤; 1、导包: import 包路径.类名称; 注:如果使用的类名称和当前类放在同一包下,则可以省略导包语句; 只有java.long包下的内容不需要导包,其他包都需要import语句; 2、创建: 类名称 对象名 = new 类名称(); 3、使用: 对象名.成员方法名();
Scanner在程序中的使用
public class Demo01Scanner { public static void main(String[] args) { //创建Scanner对象 // System.in表示从键盘输入 Scanner sc = new Scanner(System.in); //获取键盘输入的int类型数字 System.out.println("请输入一个数字:"); int a = sc.nextInt(); //打印输出 System.out.println("你输入的数是\t"+a); //获取键盘输入的字符串 System.out.println("请输入一组字符串:"); String st = sc.next(); //打印输出 System.out.println("你输入的字符串是\t"+st); } }
/*
键盘输入两个int数字,并且求出和值。
思路:
1. 既然需要键盘输入,那么就用Scanner
2. Scanner的三个步骤:导包、创建、使用
3. 需要的是两个数字,所以要调用两次nextInt方法
4. 得到了两个数字,就需要加在一起。
5. 将结果打印输出。
*/
public class Demo02ScannerSum { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个数"); int a = sc.nextInt(); System.out.println("请输入第二个数"); int b = sc.nextInt(); int sum = a+b; System.out.println("两数之和为"+sum); } }
/*
题目:
键盘输入三个int数字,然后求出其中的最大值。
思路:
1. 既然是键盘输入,肯定需要用到Scanner
2. Scanner三个步骤:导包、创建、使用nextInt()方法
3. 既然是三个数字,那么调用三次nextInt()方法,得到三个int变量
4. 无法同时判断三个数字谁最大,应该转换成为两个步骤:
4.1 首先判断前两个当中谁最大,拿到前两个的最大值
4.2 拿着前两个中的最大值,再和第三个数字比较,得到三个数字当中的最大值
5. 打印最终结果
*/
public class Demo03ScannerMax { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个数"); int a = sc.nextInt(); System.out.println("请输入第二个数"); int b = sc.nextInt(); System.out.println("请输入第三个数"); int c = sc.nextInt(); // int temp = a > b ? a : b; // int max = temp>c?temp:c; // System.out.println("最大值为:\t"+max); if(a>b){ if(a>c){ System.out.println("最大值为"+a); }else{ System.out.println("最大值为"+c); } }else{ if(b>c){ System.out.println("最大值为"+b); } else{ System.out.println("最大值为"+c); } } } }
/* 创建对象的标准格式: 类名称 对象名 = new 类名称(); 匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。 new 类名称(); 注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。 使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。 */
创建类
public class Person { String name; public void showName(){ System.out.println("我的名字是:"+name); } }
创建测试类
public class Demo01Anonymous { public static void main(String[] args) { //通常创建类,声明Person后,左边的变量pe是对象的名字 // Person pe = new Person(); // pe.name = "张三"; // pe.showName();//调用方法查看名字 System.out.println("=================="); //而匿名对象就是不给对象起名字,直接创建 new Person(); //这样创建的对象直接调用变量,方法 //第一次创建匿名对象 new Person().name = "李四"; //第二次创建匿名对象,所以调用不出第一次的 new Person().showName();//我的名字是:null } }
一
import java.util.Random; /* Random类用来生成随机数字。使用起来也是三个步骤: 1. 导包 import java.util.Random; 2. 创建 Random r = new Random(); // 小括号当中留空即可 3. 使用 获取一个随机的int数字(范围是int所有范围,有正负两种):int num = r.nextInt() 获取一个随机的int数字(参数代表了范围,左闭右开区间):int num = r.nextInt(3) 实际上代表的含义是:[0,3),也就是0~2 */ public class Demo01Random { public static void main(String[] args) { Random r = new Random(); int num = r.nextInt(); System.out.println("随机数是:" + num); } }
二
import java.util.Random; /* 题目要求: 根据int变量n的值,来获取随机数字,范围是[1,n],可以取到1也可以取到n。 思路: 1. 定义一个int变量n,随意赋值 2. 要使用Random:三个步骤,导包、创建、使用 3. 如果写10,那么就是0~9,然而想要的是1~10,可以发现:整体+1即可。 4. 打印随机数字 */ public class Demo03Random { public static void main(String[] args) { int n = 5; Random r = new Random(); for (int i = 0; i < 100; i++) { // 本来范围是[0,n),整体+1之后变成了[1,n+1),也就是[1,n] int result = r.nextInt(n) + 1; System.out.println(result); } } }
三
import java.util.Random; import java.util.Scanner; /* 题目: 用代码模拟猜数字的小游戏。 思路: 1. 首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法 2. 需要键盘输入,所以用到了Scanner 3. 获取键盘输入的数字,用Scanner当中的nextInt方法 4. 已经得到了两个数字,判断(if)一下: 如果太大了,提示太大,并且重试; 如果太小了,提示太小,并且重试; 如果猜中了,游戏结束。 5. 重试就是再来一次,循环次数不确定,用while(true)。 */ public class Demo04RandomGame { public static void main(String[] args) { Random r = new Random(); int randomNum = r.nextInt(100) + 1; // [1,100] Scanner sc = new Scanner(System.in); while (true) { System.out.println("请输入你猜测的数字:"); int guessNum = sc.nextInt(); // 键盘输入猜测的数字 if (guessNum > randomNum) { System.out.println("太大了,请重试。"); } else if (guessNum < randomNum) { System.out.println("太小了,请重试。"); } else { System.out.println("恭喜你,猜中啦!"); break; // 如果猜中,不再重试 } } System.out.println("游戏结束。"); } }