java基础04 Scanner的使用
1.Scanner测试代码:
package cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class ScannerTest { //获得用户输入
/**
* 所有在java.lang包下的所有类 不需要显示的引入包!
* java.util.Scanner:想获取用户的输入 必须引入相关的类
*/
public static void main(String[] args) {
//创建一个Scanner类对象,通过new关键字 System.in:用户的输入
Scanner input=new Scanner(System.in);
System.out.print("请输入您的姓名:");
String name=input.next();//这个next()只能用String类型的变量来接收
System.out.print("请输入您的年龄:");
int age=input.nextInt();//这个next()只能用int类型的变量来接收
System.out.println("您输入的姓名是:"+name);
System.out.println("您输入的年龄是:"+age);
System.out.println("*****************判断用户有没有输入*****************");
boolean flag=input.hasNext();
System.out.println("判断用户有没有输入:"+flag);
System.out.println("*****************判断用户是否输入的是整数*****************");
flag=input.hasNextInt();
System.out.println("判断用户是否输入的是整数:"+flag);
System.out.println("*****************判断用户输入的是否为浮点数*****************");
flag=input.hasNextDouble();
System.out.println("判断用户输入的是否为浮点数:"+flag);
}
}
2.nextLine()的使用:
package cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class ScannerTest02 { //获得用户输入
public static void main(String[] args) {
//创建一个Scanner类对象,通过new关键字 System.in:用户的输入
Scanner input=new Scanner(System.in);
System.out.print("请输入您的姓名:");
/**
* String name=input.next();
* 如果这里输入的是 小黑 50 只能拿到 小黑
* 也就是拿到 空格 之前的第一个
* 我想拿到所有?? 就不能使用next()
* 使用nextLine()
*/
String name=input.nextLine();
System.out.println("您输入的姓名是:"+name);
}
}
3.王浩3门课程成绩:
package cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class ScannerTest03 {
/**
* import:导入需要的类!
* import:可以多次使用
* @param args
*/
public static void main(String[] args) {
/**
* 从控制台输入学员王浩3门课程成绩,编写程序实现
* (1)Java课和SQL课的分数之差
(2)3门课的平均分
*/
Scanner input=new Scanner(System.in);
/**
* 获取王浩的三门课程成绩
*/
System.out.print("王浩的Java成绩:");
double javaScore=input.nextDouble();
System.out.print("王浩的音乐成绩:");
double musicScore=input.nextDouble();
System.out.print("王浩的SQL成绩:");
double sqlScore=input.nextDouble();
System.out.println("王浩的Java成绩:"+javaScore);
System.out.println("王浩的音乐成绩:"+musicScore);
System.out.println("王浩的SQL成绩:"+sqlScore);
System.out.println("=============================");
/**
* Java课和SQL课的分数之差
*/
System.out.println("Java课和SQL课的分数之差:"+(javaScore-sqlScore));
System.out.println("=============================");
/**
* 3门课的平均成绩
*/
double avg=(javaScore+musicScore+sqlScore)/3.0;
System.out.println("3门课的平均成绩"+avg);
}
}
4.运算符01:
package cn.ckg.operator;
/**
*
* @author Vip宅男
*
*/
public class Operator {
public static void main(String[] args) {
int num1=10;
int num2=5;
/**
* 取整
*/
int a=num1/num2;
/**
* 取余
*/
int b=num1%num2;
System.out.println("num1/num2取整的值:"+a);
System.out.println("num1%num2取余的值:"+b);
System.out.println("===========================");
/**
* ++:自身加1
* 01.++在前:先自身加1,在执行操作
* 02.++在后:先执行操作,在自身加1
* --:自身减1
*/
num1++; num2--;
//System.out.println(++num1);
//System.out.println(--num2);
System.out.println("===========================");
System.out.println(num1++);
System.out.println(num2--);
}
}
5.类型转换:
package cn.ckg.scanner;
/**
*
* @author Vip宅男
*
*/
public class AvgTest {
public static void main(String[] args) {
/**
* 某班第一次Java考试平均分81.29,
* 第二次比第一次多2分,
* 计算第二次考试平均分?
*/
double firstAvgScore=81.29;//第一次平均分
double sAvg;//定义第二次平均分
int rise=2;//增长的分数
/**
* 自动类型转换:
* 01.如果一个操作数是double,则整个表达式都是double
* 02.操作数 要相互兼容! 数值类型的数据
* 03.目标类型 大于 (取值范围)源类型
*/
sAvg=firstAvgScore+rise;
System.out.println("第二次考试的平均分:"+sAvg);
System.out.println("============================");
System.out.println("计算之和:"+5+5);
System.out.println(5+5+"计算之和");
System.out.println("============================");
/**
* 强制类型转换: 把大的数据类型 转换成 小的数据类型!
*/
int before=20;
double after=5.5;
/**
* 把大蛋糕放大 小盒子?? 可定装不下
*/
int now=before+(int)after;
System.out.println("now的值:"+now);
//float s=(float)50.5;
//float s1=50.5f;
//float s2=50.5F;
}
}
6.数字加密器:
package cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class Test {
public static void main(String[] args) {
/**
* 实现一个数字加密器,加密规则是
加密结果 = (整数 * 10 + 5)/ 2 + 3.14159
加密结果仍为一整数
*/
Scanner input=new Scanner(System.in);
/**
* 提示用户的输入
*/
System.out.print("请输入一个整数:");
int num=input.nextInt();// ctrl+1 快速补全
int result=((num*10+5)/2+(int)3.14159);
System.out.println("结果是:"+result);
}
}
7.运算符02:
package cn.ckg.scanner;
/**
*
* @author Vip宅男
*
*/
public class Opration {
public static void main(String[] args) {
/**
* ==: 基本数据类型再做比较的时候是比较的值!
* !=: 不等于
*/
int a = 5;
int b = 5;
System.out.println("a == b:" + (a == b));
System.out.println("a != b:" + (a != b));
System.out.println("a > b:" + (a > b));
System.out.println("a < b:" + (a < b));
System.out.println("a < =b:" + (a <= b));
System.out.println("a > =b:" + (a >= b));
}
}
8.运算符Boolean:
package cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class Test04 {
public static void main(String[] args) {
/**
* 从控制台输入张三同学的成绩,
* 与李四的成绩(80分)比较,
* 输出“张三的成绩比李四的成绩高吗?“ 的判断结果
*/
Scanner input=new Scanner(System.in);
/**
* 提示用户输入
*/
double liScore=80;
System.out.println("张三同学的成绩:");
double zhangScore=input.nextDouble();
System.out.println("张三的成绩比李四的高吗?"+(zhangScore>liScore));
}
}
9.购物的小系统:
package
cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class Pay {
/**
* 实现购物的小系统
*/
public static void main(String[] args) {
System.out.println("******************欢迎使用购物小系统******************");
Scanner input=new Scanner(System.in);
System.out.print("请输入您要购买商品的名称:");
/**
* 获取商品名称
*/
String goodsName=input.next();
System.out.print("请您输入要购买商品的单价:");
/**
* 获取单价
*/
double goodsPrice=input.nextDouble();
System.out.print("请输入您要购买商品的个数:");
/**
* 获取商品的个数
*/
int goodsSize=input.nextInt();
/**
* 计算总金额:总金额=单价*个数
*/
double sum=goodsPrice*goodsSize;
System.out.print("请您输入商品折扣:");
/**
* 获取折扣
*/
double zhe=input.nextDouble();
/**
* 输出商品信息
*/
System.out.println("*********************消费清单*********************");
System.out.println("商品名称\t商品单价\t商品个数\t总金额");
System.out.println(goodsName+"\t"+goodsPrice+"\t"+goodsSize+"\t"+sum);
System.out.println("购买商品总金额:"+sum);
System.out.println("商品折扣:"+zhe);
System.out.println("实际消费金额:"+(sum*zhe));
System.out.print("请您输入您的缴费金额:");
/**
* 获取缴费金额
*/
double pay=input.nextDouble();
System.out.println("找零:"+(pay-(sum*zhe)));
/**
* 计算积分
*/
int score=(int)((sum*zhe)/10);
System.out.println("本次购物的消费积分为:"+score);
}
}
10.会员卡中奖:
package
cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class Demo {
/**
*现会员卡中奖
* 商场推出幸运抽奖活动
* 抽奖规则
* 顾客的四位会员卡号的
* 各位数字之和大于20,
* 则为幸运顾客
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请您输入四位会员卡号:");
/**
* 获取会员卡号
*/
int num=input.nextInt();
/**
* 获取各位的 数字
*/
int one=num%10;
int ten=num/10%10;
int hundred=num/100%10;
int thousand=num/1000;
/**
* 获取各位的数字之和
*/
int sum=one+ten+hundred+thousand;
/**
* 和20比大小
*/
boolean result=sum>20;
System.out.println("您是幸运的客户吗?==="+result);
}
}
11.折扣后的价格:
package
cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class Demo02 {
/**
* 声明变量存储商品价格信息
从键盘接收折扣,并保存
计算商品享受折扣后的价格
输出商品折扣后价是否低于100
*/
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.print("请您输入商品价格:");
double goodsPrice=input.nextDouble();
System.out.print("请您输入商品的折扣:");
double zhe=input.nextDouble();
/**
* 实际支付金额
*/
double pay=goodsPrice*zhe;
/**
* 输出商品折扣后的价是否低于100
*/
boolean result=pay<100;
System.out.println("输出商品折扣后的价是否低于100?==="+result);
}
}
12.等量转换:
package
cn.ckg.scanner;
/**
*
* @author Vip宅男
*
*/
public class Operators {
public static void main(String[] args) {
int num1=5;//把=右边的值 赋值给了 =左边的变量
int num2=10;
System.out.println("***************转换之前***************");
System.out.println("num1的值:"+num1);
System.out.println("num2的值:"+num2);
System.out.println("***************转换之后***************");
/**
* 寻找一个空瓶子
*/
int temp;
temp=num1;
num1=num2;
num2=temp;
System.out.println("num1的值:"+num1);
System.out.println("num2的值:"+num2);
}
}
13.三元运算符等:
package
cn.ckg.scanner;
import java.util.Scanner;
/**
*
* @author Vip宅男
*
*/
public class Demo03 {
/**
* 一元运算符:一个表达式就可以参与运算!
* ++ --
*
* 二元运算符:二个表达式就可以参与运算!
* + / * - %
*
* 三元运算符:三个表达式就可以参与运算!
* 数据类型 变量名= 表达式1?表达式2:表达式3
* String result=(5>4)?"真":"假";
*
* 表达式1:必须是boolean类型的值!也就是 必须使用关系运算符!
* 表达式2:表达式1为true的时候执行的表达式!
* 表达式3:表达式1为false的时候执行的表达式!
*
* 表达式2和表达式3的数据类型!必须一致!
*
*/
public static void main(String[] args) {
/**
* 总数量(totalCount) 页大小 (pageSize) 总页数(pageCount)
* 101 10 11
*
* 100 10 10
*
* x x x
*/
Scanner input=new Scanner(System.in);
System.out.print("输入总数量:");
int totalCount=input.nextInt();
System.out.print("请您每页显示几条数据:");
int pageSize=input.nextInt();
/**
* 怎么求总页数??
* (总数量%页大小==0) (总数量/页大小)
* (总数量%页大小!=0) (总数量/页大小+1)
*
* 使用三元表达式 ??
*/
int pageCount=(totalCount%pageSize==0)?(totalCount/pageSize):(totalCount/pageSize+1);
System.out.println("应该是多少页:"+pageCount);
}
}