连接运算符
class Operator01{
public static void main(String[] args){
//连接运算符
String s1 = "100",s2 = "200";
String s3 = s1 + s2; //"100200"
//上面一条语句是否等价于如下代码?
String s4 = s2 + s1; //"200100"
System.out.println("s3 = " + s3);
System.out.println("s4 = " + s4);
//因此得到结论:当作连接时变量值的顺序颠倒会影响结果
}
}
扩展赋值运算符
class Operator02{
public static void main(String[] args){
//扩展赋值运算符
/*int a = 10;
//a = a + 5;
//其实该条语句也可以编写为:
a += 5;
System.out.println("a = " + a); */
/*int x = 0,y = 123;
//x = x * 10 + y % 10; //x = 3
//上面一条语句能否编写为如下代码?----不等价
x *= 10 + y % 10; //x = 0 其实该条语句等价于x = x * (10 + y % 10);
System.out.println("x = " + x); */
int a = 123;
//注意:在Java中,当使用扩展赋值运算符时,不会改变左侧变量的数据类型,并且不会进行四舍五入
a += 5.97; //a = 128;
//其实上面一条语句等价于如下写法,但是结果不一样
//a = a + 5.97; //出现编译错误,原因:当前使用赋值运算符时,等号右侧的值是128.97不能直接给左侧int类型赋值
System.out.println("a = " + a);
int m = 12345;
m -= 10; //等价于m = m - 10;
m = 678;
m /= 10; //等价于m = m / 10;
m = 1234;
m %= 10; //等价于m = m % 10;
}
}
关系运算符
class Operator03{
public static void main(String[] args){
/*
关系运算符
总结:当满足条件(条件成立)时,则结果为true(真的),否则为false(假的)
*/
System.out.println(10 > 9); //true
System.out.println(100 < 20); //false
System.out.println(5 / 2 >= 2); //true
System.out.println(10 % 3 == 5 / 4); //true
System.out.println(12 % 3 <= 4); //true
System.out.println(18 % 9 != 20 % 5); //false
}
}
逻辑运算符
class Operator04{
public static void main(String[] args){
//逻辑与&:当两个条件都满足(都成立)时,则结果为true,否则为false
/*System.out.println(5 > 3 & 8 != 9); //true
System.out.println(12 % 6 == 2 & 1 < 9); //false
System.out.println(8 / 2 != 0 & 6 % 3 == 2); //false
System.out.println(100 / 10 == 0 & 5 / 3 == 2); //false */
//逻辑或|
/*System.out.println(0 == 1 | 8 > 7); //true
System.out.println(6 / 3 == 2 | 5 < 15); //true
System.out.println(100 % 10 == 10 | 9 % 3 == 3); //false */
//逻辑异或^
/*System.out.println(3 >= 4 ^ 6 <= 7); //true
System.out.println(14 / 7 >= 0 ^ 10 % 3 != 0); //false */
//逻辑非!
/*System.out.println(!true); //false
System.out.println(!!true); //true
//System.out.println(!1 > 2); //出现编译错误,必须将1 > 2添加括号
System.out.println(!(1 > 2)); //true */
/*
短路与&&
1.通过运行得到,短路与和逻辑与的执行结果都一样
2.当使用短路与时,并且第一个条件为false时,则结果直接为false
3.因此在使用短路与时执行速度可能会更快或者效率高
4.建议使用短路与
*/
/*System.out.println(100 > 1 && 9 != 5); //true
System.out.println(100 > 1 & 9 != 5); //true
System.out.println(6 == 7 && 12 <= 20); //false
System.out.println(6 == 7 & 12 <= 20); //false */
/*
短路或||
1.通过运行得到,短路或和逻辑或的执行结果都一样
2.当使用短路或时,并且第一个条件为true时,则结果直接为true
3.因此使用短路或时,执行速度相对更快或者效率高
4.建议:使用短路或
*/
System.out.println(1 >= 0 || 3 == 4); //true
System.out.println(1 >= 0 | 3 == 4); //true
}
}
练习1:判断10大于20嘛,要求:使用三目运算符完成
三目语法格式:条件 ? 代码1 : 代码2
class Operator05{
public static void main(String[] args){
/*
练习1:判断10大于20嘛,要求:使用三目运算符完成
三目语法格式:条件 ? 代码1 : 代码2
*/
//System.out.println(10 > 20 ? "大于" : "不大于");
/*
练习2:判断一个数(比如:18)是奇数还是偶数
分析得到:1.该题有两种情况,分别是奇数、偶数,最终得到一个结果偶数,因此就可以使用三目运算符完成
2.三目语法格式:条件 ? 代码1 : 代码2
3.当一个数能被2整除,则就是偶数,否则就是奇数
则编写代码为,18 % 2 == 0
*/
/*int a = 18;
System.out.println(a % 2 == 0 ? a + "是偶数" : a + "是奇数");*/
//练习3:判断一个数(比如:123),当大于0则输出1,当小于0则输出-1,否则输出0
int a = -123;
System.out.println(a > 0 ? 1 : a < 0 ? -1 : 0);
}
}
练习1:判断一个数是奇数还是偶数
import java.util.Scanner; //第一步:导入包,必须位于当前Java源文件所有类的最前面
class Input06{
public static void main(String[] args){
/*
练习1:判断一个数是奇数还是偶数
分析得到:1.该题中有未知数,则就可以编写为键盘接收用户输入的完成
*/
//第二步:创建Scanner对象
Scanner input = new Scanner(System.in);
//第三步:友好提示
System.out.print("请输入一个整数:");
//第四步:键盘接收用户输入
int num = input.nextInt(); //注意:当按回车则表示输入完毕,并且将输入的值赋给左侧的变量名称
System.out.println(num % 2 == 0 ? num + "是偶数" : num + "是奇数");
}
}
class Input07{
public static void main(String[] args){
/*
练习2:计算两个数的和
分析得到:1.该题中有两个未知的数,因此就可以编写为键盘接收用户输入
*/
Scanner input = new Scanner(System.in);
System.out.print("请输入第一个整数:");
int a = input.nextInt();
System.out.print("请输入第二个整数:");
int b = input.nextInt();
//计算变量a和b中和
int sum = a + b;
//输出sum中的值
System.out.println("两个数的和:" + sum);
}
}
练习3:输入某个学生的信息(姓名、性别、年龄、身高、体重、家庭住址),并将所有的信息输出
import java.util.*; //其实也可以编写为import java.util.Scanner; 其中*包含所有
class Input08{
public static void main(String[] args){
//练习3:输入某个学生的信息(姓名、性别、年龄、身高、体重、家庭住址),并将所有的信息输出
Scanner input = new Scanner(System.in);
System.out.print("请输入姓名:");
String a = input.next(); //注意:在Java中,键盘接收字符串类型时没有nextString(),而是使用next()
System.out.print("请输入性别:");
String b = input.next();
System.out.print("请输入年龄:");
int c = input.nextInt();
System.out.print("请输入身高:");
double d = input.nextDouble();
System.out.print("请输入体重:");
double e = input.nextDouble();
System.out.print("请输入家庭住址:");
String f = input.next();
//输出6个变量中的值
System.out.println("姓名:" + a + "\n性别:" + b + "\n年龄:" + c + "\n身高:" + d + "\n体重:" + e
+ "\n家庭住址:" + f);
}
}
练习1:假如对张三进行Java机试题测试,如果得95分以上则有奖励
import java.util.*;
class If09{
public static void main(String[] args){
//练习1:假如对张三进行Java机试题测试,如果得95分以上则有奖励
//第一步:键盘输入张三的成绩,存放在变量中
Scanner input = new Scanner(System.in);
System.out.println("请输入张三的考试成绩:");
double score = input.nextDouble();
//第二步:判断当前变量score中的值,来得到是否有奖励
/*if(score > 95){
System.out.println("有奖励");
}*/
/*
注意:在Java中,当代码块中只有一条语句时,则大括号是可以省略不写的
其实也就是默认对一条语句添加大括号
建议:当大括号中只有一条语句时,建议也要编写大括号,阅读清晰
*/
if(score > 95){
System.out.println("有奖励");
}
System.out.println("OK");
}
}
练习2:假如对张三进行Java机试题测试,如果得95分以上则有奖励,否则发红包
import java.util.*;
class If10{
public static void main(String[] args){
//练习2:假如对张三进行Java机试题测试,如果得95分以上则有奖励,否则发红包
Scanner input = new Scanner(System.in);
System.out.print("请输入张三的考试成绩:");
double score = input.nextDouble();
//第一种方法:使用两个if块完成,缺点:执行速度可能慢或者效率低
/*if(score > 95){
System.out.println("有奖励");
}
if(score <= 95){
System.out.println("发红包");
}*/
//第二种方法:三目运算符
/*System.out.println(score > 95 ? "有奖励" : "发红包");
//其实上面一条语句,也可以编写为如下代码
String a = score > 95 ? "有奖励" : "发红包";
System.out.println(a); */
//第三种方法:使用if else完成
if(score > 95){
System.out.println("有奖励");
}else{
System.out.println("发红包");
}
}
}
练习3:判断一个数能否被9整除
import java.util.*;
class If11{
public static void main(String[] args){
//练习3:判断一个数能否被9整除
//第一步:键盘输入一个数存放在变量中
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数:");
int num = input.nextInt();
//第二步:判断当前变量num中的值
/*if(num % 9 == 0){
System.out.println(num + "是9的倍数");
}else{
System.out.println(num + "不是9的倍数");
}*/
//练习4:判断一个数是否是三位的正数
if(num >= 100 && num <= 999){
System.out.println(num + "是三位的正数");
}else{
System.out.println(num + "不是三位的正数");
}
}
}