配套视频教程
本文 B 站配套视频教程
常量
(1)在程序执行的过程中,其值不产生扭转的量
(2)字面值常量
A: 字符串常量 "hello"
B: 整数常量 12,23
C: 小数常量 12.345
D: 字符常量 'a','A','0'
E: 布尔常量 true,false
F: 空常量 null(前面讲)
/*
常量:在程序执行过程中,其值不产生扭转的量。分类:A: 字面值常量
B: 自定义常量(前面讲)
字面值常量
A: 字符串常量 用双引号括起来的内容。举例:"hello","world","HelloWorld"
B: 整数常量 所有的整数
举例:100,200
C: 小数常量 所有的小数
举例:10.23,110.11
D: 字符常量 用单引号括起来的内容
举例:'a','A','0'
谬误的:'ab'
E: 布尔常量 比拟非凡
举例:true,false
F: 空常量 前面讲
举例:null
*/
class ConstantDemo {public static void main(String[] args) {
// 字符串常量的输入
System.out.println("hello");
// 整数常量的输入
System.out.println(100);
// 小数常量的输入
System.out.println(100.10);
// 字符常量的输入
System.out.println('a');
System.out.println('A');
System.out.println('0');
// 这个是有问题的,字符常量有单引号,字符串常量用双引号
//System.out.println('ab');
// 布尔常量的输入
System.out.println(true);
System.out.println(false);
}
}
变量的三要素
类型,变量名,保留的值
根本数据类型
- 数值
- 整数 byte,short,int,long
25,-987, 0 - 小数 float,double
5.23,3.14
- 字符串
- 字符串 String
“ 你好 ”,” 中国的首都 ”
- 字符 char
‘a’, ‘ 的 ’
- 布尔型
boolean
应用一个变量的步骤
- 定义一个变量
数据类型 变量名;
int money;
2. 给变量赋值
变量名 = 数值;
money = 1000 ;
第一步和第二步能够合并
数据类型 变量名 = 数值;
int money = 1000;
3. 应用这个变量
System.out.println(money);
int age;// 定义一个变量
age = 34; // 给变量赋值
System.out.println(age); // 在屏幕上输入变量的值
String name="zhangsan";// 定义一个变量,并且马上给其赋值
System.out.println(name); // 在屏幕上输入变量的值
定义几个变量
手机的品牌 brand 是华为,价格 (price)2500,分量(weight)0.125 千克,
色彩(color) 红
String brand = "华为";
int price = 2500;
double weight = 0.125;
char color = '红';
System.out.println("手机品牌:" + brand);
System.out.println("手机价格:" + price);
获取用户输出
应用 Scanner 类
Scanner sc = new Scanner(System.in);
/*
* Scanner: 用于接管键盘录入数据。*
* 后面的时候:* A: 导包
* B: 创建对象
* C: 调用办法
*
*/
import java.util.Scanner;
public class ScannerDemo {public static void main(String[] args) {
// 创建对象
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
System.out.println("x:" + x);
}
}
Scanner scanner = new Scanner(System.in);// 定义一个从屏幕取得输出信息的变量 scanner
System.out.println("请输入您的年龄");
int age = scanner.nextInt();// 取得用户从屏幕输出的一个整数,有一个阻塞的副作用,艰深点说,就是程序卡在这里了
System.out.println("您的年龄是" + age);
System.out.println("请输入您的姓名");
String name = scanner.next();// 取得用户从屏幕输出的一个字符串,有一个阻塞的副作用,艰深点说,就是程序卡在这里了
System.out.println("欢迎您" + name);
Scanner 类的 hasNextInt()和 nextInt()办法
import java.util.Scanner;
/*
* 根本格局:* public boolean hasNextXxx(): 判断是否是某种类型的元素
* public Xxx nextXxx(): 获取该元素
*
* 举例:用 int 类型的办法举例
* public boolean hasNextInt()
* public int nextInt()
*
* 留神:* InputMismatchException:输出的和你想要的不匹配
*/
public class ScannerDemo {public static void main(String[] args) {
// 创建对象
Scanner sc = new Scanner(System.in);
// 获取数据
if (sc.hasNextInt()) {int x = sc.nextInt();
System.out.println("x:" + x);
} else {System.out.println("你输出的数据有误");
}
}
}
Scanner 类中的 nextLine()产生的换行符问题
import java.util.Scanner;
/*
* 罕用的两个办法:* public int nextInt(): 获取一个 int 类型的值
* public String nextLine(): 获取一个 String 类型的值
*
* 呈现问题了:* 先获取一个数值,在获取一个字符串,会呈现问题。* 如何解决呢?
* A: 先获取一个数值后,在创立一个新的键盘录入对象获取字符串。* B: 把所有的数据都先依照字符串获取,而后要什么,你就对应的转换为什么。*/
public class ScannerDemo {public static void main(String[] args) {
// 创建对象
Scanner sc = new Scanner(System.in);
// 获取两个 int 类型的值
// int a = sc.nextInt();
// int b = sc.nextInt();
// System.out.println("a:" + a + ",b:" + b);
// System.out.println("-------------------");
// 获取两个 String 类型的值
// String s1 = sc.nextLine();
// String s2 = sc.nextLine();
// System.out.println("s1:" + s1 + ",s2:" + s2);
// System.out.println("-------------------");
// 先获取一个字符串,在获取一个 int 值
// String s1 = sc.nextLine();
// int b = sc.nextInt();
// System.out.println("s1:" + s1 + ",b:" + b);
// System.out.println("-------------------");
// 先获取一个 int 值,在获取一个字符串,这里会出问题
// int a = sc.nextInt();
// String s2 = sc.nextLine();
// System.out.println("a:" + a + ",s2:" + s2);
// System.out.println("-------------------");
int a = sc.nextInt();
Scanner sc2 = new Scanner(System.in);
String s = sc2.nextLine();
System.out.println("a:" + a + ",s:" + s);
}
}
运算符
- 赋值运算符
=
员王浩的 Java 问题是 80 分,学员张萌的 Java 问题与王浩的雷同,输入张萌的问题
int wangScore = 80; // 王浩问题
int zhangScore; // 张萌问题
zhangScore = wangScore;
System.out.println(“张萌问题是 " +zhangScore);
2. 算数运算符
+,-,*,/,%
System.out.println(1600%5);//0-4
System.out.println(3%5);//3
System.out.println(3%2);//1
System.out.println(21%5);//1
System.out.println(13%4);//1
// System.out.println(m%n);//0----n-1
System.out.println(23%7);//2
System.out.println(25%7);//4
一个问题
用户在屏幕上输出一个天数,程序答复出是几周零几天?
// 用户在屏幕上输出一个天数,程序答复出是几周零几天?
Scanner scanner = new Scanner(System.in);
System.out.println("请输出天数");
// 取得用户输出的天数 dayCount
int dayCount = scanner.nextInt();
System.out.println(dayCount+"天是"+ dayCount/7 + "周零" + dayCount%7 + "天");
关系运算符
比拟高下、大小、长短等
张三的考试成绩是否比李四高
大象是否比乌龟更长命
篮球跟地球一样大吗
,<
==,!=
=,<=
boolean (布尔)类型
boolean 类型的值:
真:true
假:false表达式 (3+40%6)>(9/2*3) 的后果是什么?
false
从控制台输出张三同学的问题,与李四的问题(80 分)比拟,输入“张三的问题比李四的问题高吗?”的判断后果
int liSi = 80; // 学员李四问题
boolean isBig ;
Scanner input = new Scanner(System.in);
System.out.print("输出学员张三问题:");
int zhangSan = input.nextInt(); // 输出张三的问题
isBig = zhangSan > liSi ;
System.out.println("张三问题比李四高吗?"+isBig); // 输入比拟后果
表达式
y = x-9+(x +90);
练习
商场推出侥幸抽奖流动
抽奖规定:
顾客的四位会员卡号的
各位数字之和大于 20,
则为侥幸顾客。
类型转换
主动类型转换
某班第一次 Java 考试平均分 81.29,第二次比第一次多 2 分,计算第二次考试平均分?
double firstAvg = 81.29; // 第一次平均分
double secondAvg; // 第二次平均分
int rise = 2;
secondAvg = firstAvg + rise;
System.out.println("第二次平均分是:" + secondAvg);
规定 1:如果一个操作数为 double 型,则整个表达式可晋升为 double 型
规定 2:满足主动类型转换的条件
两种类型要兼容:
数值类型(整型和浮点型)相互兼容
指标类型大于源类型:
例如:double 型大于 int 型
强制类型转换
(类型名)表达式
int b = (int)10.2;
double a = 10;
int c = (int)a;
去年 Apple 笔记本所占市场份额是 20,往年增长的市场份额是 9.8,求往年所占份额?
int before = 20; //apple 笔记本市场份额
double rise = 9.8; // 增长的份额
int now = before+ (int)rise; // 当初的份额
当强制转换时,精度有损失