目录
1.运算符:
2.字符与字符串参与运算:
3.自增自减运算符:
4.关系运算符 :
5.逻辑运算符:
6.三元运算符:
7.重点:键盘录入:
8.程序控制语句:
运算符:对常量和变量进行操作的符号
表达式:用运算符把常量或者变量连接起来符合Java语法的式子
常用运算符:
算术运算符
自增自减运算符
赋值运算符
关系运算符
逻辑运算符
三元运算符
算术运算符:+ - * / %
/与%的区别: /:获取两个数据相除的商 %:获取两个数据相除的余数
public class operatorDemo {
public static void main(String[] args) {
// 定义两个int变量
int a = 5;
int b = 3;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
System.out.println("-------------------");
System.out.println(5/4);
System.out.println(5.0/4);
System.out.println(5/4.0);
}
}
输出结果:
8
2
15
1
2
-------------------
1
1.25
1.25
字符参与运算:其实是拿该字符在计算机中存储所表示的数据值来运算的。
需重点记住如下三个代表
'a' :97
'A':65
'0':48
字符串参与加法运算:其实这里不是加法,而是字符串的拼接。
public class operatorDemo2 {
public static void main(String[] args) {
// 定义两个变量,一个int类型,一个char类型
int a = 10;
char ch = 'a';
System.out.println(a + ch);
System.out.println("---------------");
// 字符串加法
System.out.println("hello" + "world");
System.out.println("hello" + 10);
System.out.println("hello" + 10 +20);
System.out.println(10+20+"hello");
}
}
输出结果:
107
---------------
helloworld
hello10
hello1020
30hello
自增自减运算符:++,--
作用:自己加1或减一
重点区分:a++; ++a; a--; --a
单独使用一个变量时,放在变量前面或者后面,效果一样。
但参与其他操作时:
++在变量的后面,先把变量做操作,然后变量再++(如:下中int b = a++,表示先将a赋值给b,a再自行加1)
++在变量的前面,先变量++,再操作(如:下中int b = ++a,表示先将a自行加一,再将a赋值给b)
public class operatorDemo3 {
public static void main(String[] args) {
// 定义一个int类型变量
int a = 10;
System.out.println("a:" + a);
// a++;
// System.out.println("a:"+a);
// a--;
// System.out.println("a:"+a);
// --a;
// System.out.println("a:"+a);
// ++a;
// System.out.println("a:"+a);
int b = a++;
System.out.println("b:"+b);
System.out.println("a:"+a);
// int b = ++a;
// System.out.println("b:"+b);
}
}
代码中有注释,可区分注释,答案不同
==, !=, >=, >, <, <=
关系运算符的操作完毕的结果是boolean类型(**为布尔类型)
public class operatorDemo5 {
public static void main(String[] args) {
//定义三个变量
int a = 10;
int b = 20;
int c = 10;
System.out.println(a == b);
System.out.println(a == c);
System.out.println(a != b);
System.out.println(a != c);
System.out.println(a > b);
System.out.println(a > c);
System.out.println(a >= b);
System.out.println(a >= c);
System.out.println(a <= b);
System.out.println(a <= c);
}
}
输出结果:
false
true
true
false
false
false
false
true
true
true
逻辑运算符:
与:&& 或:|| 非:!
&&:有false则false
||:有true则true
!:true则false,false则true
范例如下:
public class operatorDemo6 {
public static void main(String[] args) {
// 定义变量
int a = 3;
int b = 4;
int c = 5;
// &&逻辑
System.out.println((a > b) && (a > c));
System.out.println((a < b) && (a > c));
System.out.println((a > b) && (a < c));
System.out.println((a < b) && (a < c));
// ||逻辑
System.out.println("------------------");
System.out.println((a > b) || (a > c));
System.out.println((a < b) || (a > c));
System.out.println((a > b) || (a < c));
System.out.println((a < b) || (a < c));
// !逻辑
System.out.println("------------------");
System.out.println((a > b));
System.out.println(!(a > b));
System.out.println(!!(a > b));
}
}
输出结果:
false
false
false
true
------------------
false
true
true
true
------------------
false
true
false
三元运算符结构:
关系表达式?表达式1:表达式2
执行流程:
1:计算关系表达式的值,看结果是true还是false
2:如果是true,表达式1就是结果
如果是false,表达式2就是结果(没其他更醒目的颜色,只有用绿色吧#-#)
public class operatorDemo7 {
public static void main(String[] args) {
// 定义两个变量
int a = 10;
int b = 20;
int c = (a>b)?a:b;
System.out.println("c:"+c);
}
}
输出结果:
c:20
三原不等式小练习:
public class test01 {
public static void main(String[] args) {
// 需求:比较两个整数是否相等
// 定义两个int变量
int a = 10;
int b = 20;
boolean flag = (a==b)?true:false;
// 成立则选第一个,不成立选第二个,由题意可知10不等于20,所以输出第二个值false
System.out.println(flag);
}
}
输出结果:
false
为了提高程序灵活性,将数据改为键盘录入
如何实现键盘录入,使用JDK 提供的Scanner
使用步骤:
A.导包
import java.util.Scanner;
注意:在一个类中,有如下顺序
package>import>class
B.创建键盘录入对象
Scanner sc = new Scanner(System.in);
C.获取数据
int i = sc.nextInt();
package day_2;
/*
@author: MR.chan
@file: scannerDemo.py
@time: 2020/03/22
@desc:
*/
import java.util.Scanner;
public class scannerDemo {
public static void main(String[] args) {
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 给出提示
System.out.println("请输入一个数据:");
// 获取数据
int i = sc.nextInt();
// 把获取的数据输出
System.out.println("i:"+i);
}
}
注意上方 导入包在package和class之间
输出结果为:
请输入一个数据:
(自己填入数字)
(输出所填数字)
键盘录入练习
需求:键盘录入两个数据,并对两个数据求和,输出其结果
package day_2;
/*
@author: MR.chan
@file: test02.py
@time: 2020/03/22
@desc:
*/
import java.util.Scanner;
//需求录入两个数据,并对这两个数据求和
public class test02 {
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);
}
}
流程控制语句:
顺序结构如下:
选择结构:
1.if语句
2.switch语句
(if语句结构1):
执行流程:首先判断关系表达式看结果是true还是false
若为true,则执行语句体;若为false,则不执行语句体
public class operatorDemo8 {
public static void main(String[] args) {
System.out.println("开始");
// 定义两个int类型的变量
int a = 10;
int b = 20;
int c = 10;
// 判断两个变量是否相等
if (a==b){
System.out.println("a等于b");
}
if (a==c){
System.out.println("a等于c");
}
System.out.println("结束");
}
}
输出结果:
开始
a等于c
结束
if语句格式二
if(关系表达式){
语句体1;
}else{
语句体2;
}
public class test03 {
public static void main(String[] args) {
int a = 100;
if (a%2==0){
System.out.println("a为偶数");
}else{
System.out.println("a为奇数");
}
}
}
输出结果:
a为偶数
if语句格式3
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}....
else{ 重点注意:else中要有语句,不然会报错
语句体n;
}
案例:假如x与y满足如下关系:
x>=3 y=2x+1
-1<=x<3 y = 2x
x<-1 y= 2x - 1
用第三种结构解决:
public class test04 {
public static void main(String[] args) {
int x = 5;
int y;
if (x >= 3) {
y = 2 * x + 1;
} else if (x < 3 && x >= -1) {
y = 2 * x;
} else if (x < -1) {
y = 2 * x;
}else {
y = 0;
System.out.println("不存在这样的值");
}
System.out.println("y:"+y);
}
}
输出结果:
y:11
小练习:
需求:
键盘录入两个数据,获取这两个数据中较大值
package day_2;
import java.util.Scanner;
public class test05 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a;
int b;
System.out.println("请输入第一个整数:");
a = sc.nextInt();
System.out.println("请输入第二个整数:");
b = sc.nextInt();
if(a>b){
System.out.println("较大的值为第一个整数:"+a);
}else{
System.out.println("较大的值为第二个整数:"+b);
}
}
}
小练习2.0 :学生成绩级别判断程序:
学生成绩级别判断程序
90-100:优秀
80-90: 好
70-80: 良
60-70: 及格
60以下:不及格
*/
import java.util.Scanner;
public class test06 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入学生成绩:");
int score = sc.nextInt();
if (score >= 90 && score <= 100) {
System.out.println("优秀");
} else if (score >= 80 && score < 90) {
System.out.println("好");
} else if (score >= 70 && score < 80) {
System.out.println("良");
} else if (score >= 60 && score < 70) {
System.out.println("及格");
} else if (score < 60 && score >= 0) {
System.out.println("不及格");
} else {
System.out.println("你输入的数据有误");
}
}
}
写程序做数据测试时,应当测试如下几种情况:
正确数据
边界数据
错误数据
switch语句:
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n+1;
break ;
}
格式解释:
表达式:byte,short,int,char
JDK5后可枚举,JDK7后可字符串
case后面的值:是用来表示和表达式比较的值
break表示中断,结束的意思,可以结束switch语句
default表示所有情况均不匹配时,执行该处内容,和if语句的else相似
范例:依据输入数字(1-7),依次对应星期一到星期日
package day_2;
import java.util.Scanner;
/*
@author: MR.chan
@file: test07.py
@time: 2020/03/22
@desc:
*/
/*
依据输入键盘的数据1-7,输出对应星期一到星球日
*/
public class test07 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整数(1-7):");
int a = sc.nextInt();
switch (a) {
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
}
}
}
输出结果:
请输入一个数字:
(输入一个数字)
(输出对应)