Java运算符以及流程控制语句
程序员文章站
2022-06-17 10:22:32
Java运算符以及流程控制语句一、 运算符1.1 赋值运算符1.2 关系运算符1.3 逻辑运算符1.4 三目运算符/三元运算符1.5 优先级二、流程控制语句2.1 分支2.1.1 if-单分支2.1.2 if else-双分支2.1.3 if-else if – else if -… else 多分支2.1.4 练习2.1.5 选择 switch case2.2 循环 while、do while、for一、 运算符1.1 赋值运算符下面用代码演示一下public static void main...
Java运算符以及流程控制语句
一、 运算符
1.1 赋值运算符
下面用代码演示一下
public static void main(String[] args) {
int a = 1;
int b = 1;
a += b;// a = a + b;
System.out.println(a );
byte b1 = 1;
byte b2 = 1;
b1 += b2; // b1 = b1 + b2;
//b1 = b1 + b2;
System.out.println(b1 );
/**
* += /= 等一系列赋值符号,都会默认进行类型转换
*/
byte b3 = 1;
short s3 = 1;
s3 += b3; // s3 = s3 + b3;
//s3 = s3 + b3; // 类型转换错误,需要强制转换,因为结果是int
这里面需要注意一下的是当byte,short这些小范围的类型在使用+=、 /= 等一系列赋值符号,都会默认进行类型转换,会将数据类型上升为int,此时需要强制转换.
1.2 关系运算符
关系运算符的结果为布尔类型,值为true/false
1.3 逻辑运算符
用代码稍微演示一下
public static void main(String[] args) {
/**
* 逻辑运算符 , 执行结果是布尔型, true或者false
* 解释: 布尔表达式意思是:运算结果是布尔值的式子
* & 与/和
* 布尔表达式&布尔表达式
* &符号两边的表达式结果都为true时,整个结果才为true.只要有任意一个表达式结果为false,整体结果为false
* ===> 全对才对,一错就错
* | 或
* 布尔表达式|布尔表达式
* ===> 一对就对,全错才错
* ! 非/反
* !(布尔表达式)
* &&
* 当符号前边的表达式可以代表整体的结果时,后面的表达式就短路不执行
* ||
*
*/
System.out.println(1 > 0 & 2 > 1 );// true
System.out.println(1 > 0 & 2 < 1 );// false
System.out.println(1 < 0 & 2 < 1 );// false
System.out.println(1 > 0 && 2 > 1 );// true
System.out.println(1 > 0 && 2 < 1 );// false
System.out.println(1 > 0 && 1 / 0 == 1 );// false
System.out.println(1 < 0 && 2 < 1 );// false
1.4 三目运算符/三元运算符
三目运算
数据类型 变量 = 布尔表达式 ? 为true时执行 : 为false时执行;
1) 冒号两边的执行后结果的数据类型建议一致
2) 如果一致,三目运算整体结果就是冒号两边的运算结果
3) 如果不一致,那么三目运算整体结果的数据类型不确定,但是可以使用Object接收
//小练习
int a = 11;
int b = 1;
int c = 12;
int d = 12;
// 使用三目运算输出a b中最大值
int max = a > b ? a : b;
// 使用三目运算输出a b c中最大值
int max1 = (a > b ? a : b) > c ? (a > b ? a : b) : c;
// 使用三目运算输出a b c d中最大值
int max2 = (a > b ? a : b) > (c > d ? c : d) ? (a > b ? a : b) : (c > d ? c : d);
1.5 优先级
二、流程控制语句
- javase开发,程序运行必须有且只有一个main方法
- 执行顺序是: 在main方法内部,从上至下依次逐行执行
2.1 分支
2.1.1 if-单分支
/**
* if(布尔表达式){
* 执行语句..;
* }
* 流程:
* 1 程序执行到if,先判断其中的布尔表达式,如果结果是true
* 2 就执行{} 内的执行语句
* 3 如果表达式结果是false,就跳过if结构
* 4 执行后续代码
*
*/
System.out.println(1 );
int a = 1;
if(a > 0){
System.out.println("a < 0" );
}
System.out.println(2 );
2.1.2 if else-双分支
/**
* if(布尔表达式){
* 执行语句1..;
* }else {
* 执行语句2..;
* }
* 执行流程:
* 1 程序执行到if处,先判断表达式
* 2 如果表达式结果为true,就执行if后的{} 的语句1, 不再执行语句2
* 3 如果表达式结果为false,就执行else后{}的语句2,跳过if后的语句
* 4 无论走if后还是else后,ifelse后续代码正常执行
*/
int age = 27;
if (age < 18) {
System.out.println("未成年,禁止报名驾考" );
}else{
System.out.println("成年,可以报名驾考" );
}
这里可以注意一点,如果if()后有且只有一句if结构,{}可以省略不写
2.1.3 if-else if – else if -… else 多分支
public static void main(String[] args) {
/**
* if(布尔表达式) {
* 执行语句..;
* } else if(布尔表达式) {
* 执行语句..;
* } else if(布尔表达式) {
* 执行语句..;
* }else if(布尔表达式) {
* 执行语句..;
* } else {
*
* }
*/
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt( );
// 判断输入的数字是周几
if (num > 0 && num < 8) {
if (num == 1) {
System.out.println("星期一" );
} else if (num == 2) {
System.out.println("星期二" );
} else if (num == 3) {
System.out.println("星期三" );
} else if (num == 4) {
System.out.println("星期四" );
} else if (num == 5) {
System.out.println("星期五" );
} else if (num == 6) {
System.out.println("星期六" );
} else {
System.out.println("星期日" );
}
} else {
System.out.println("输入的数字有误!" );
}
}
2.1.4 练习
用户输入一个年份,如果是闰年输出是闰年(年份能被4整除,且不能被100整除,或者能被400整除的年份)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份: " );
int count = 0;
for (int year = 1; year < 2021;year++) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
System.out.println(year+ "是闰年" );
count++;
}
}
System.out.println("1-2020年之间,共"+count+"闰年" );
}
商场消费返利活动,手动输入顾客消费金额,如果金额打8折后仍然满1000元,用户就获得200元代金券一张,最后输出用户最终消费金额
public static void test1() {
Scanner scanner = new Scanner(System.in);
System.out.println("您消费的金额是: " );
// 商场消费的钱数
double money = scanner.nextDouble( );
double m = money * 0.8;
// 打八折,仍满1000
if (m >= 1000) {
// 再优惠200
System.out.println("最终消费金额是: "+ (m-200) );
} else {
System.out.println("最终消费金额是: "+m );
}
}
2.1.5 选择 switch case
public static void main(String[] args) {
/**
* 1 程序执行到switch处,根据后面的值与其后的case后的值一一比对
* 2 如果比对一致,执行case后的执行语句
* 3 如果遇到break,中断当前switch结构,执行后续代码
* 4 如果switch后的值与case后的值比对不一致,继续向下一个case后比较
* 5 如果switch后的值与cae后的任何一个都不一致,那么直接执行default后的语句
* 6 当遇到break会结束当前switch结构,或者按顺序执行到switch的最后一个大括号,即右括号 }
*/
int num = 4;
switch (num) {// byte short char int jdk1.7之后还可以String enum(枚举)
case 1:// 1) case后的值是常量 2) 此处值的类型要与switch后的一致
// 3) 值后是冒号
System.out.println("星期一" );
// break; // break, 会中断当前switch结构,如果没有break,会造成case击穿
case 2:
System.out.println("星期二" );
// break;
case 3:
System.out.println("星期三" );
// break;
default: // 1) default结构是非必须 2) default中也可以有break 3) 最后执行
System.out.println("输入的数字有误" );
}
System.out.println("后续..." );
练习
输入 1-12的数字,输出对应的季节
3~5 春季
6~8 夏季
9~11 秋季
12~2 冬季
int month = 1;
switch(month) {
case 3:
case 4:
case 5:
System.out.println("春季" );
break;
case 6:
case 7:
case 8:
System.out.println("夏季" );
break;
case 9:
case 10:
case 11:
System.out.println("秋季" );
break;
case 12:
case 1:
case 2:
System.out.println("冬季" );
break;
2.2 循环 while、do while、for
public static void main(String[] args) {
/**
* 循环四要素
* 1 循环初始变量
* 2 循环控制条件
* 3 循环体
* 4 循环迭代
* ---------------
* int i = 1;
* while(布尔表达式) {
* 循环体;
* 循环迭代;
* }
* ---------------
* 1 执行到while处先判断布尔表达式
* 2 结果为true,执行循环体
* 3 再次回到while后的布尔表达式,再判断
* 4 如果为true继续执行,直到表达式结果为false跳过while循环,执行后续
*/
// 输出10-1
int i = 10;
while(i > 0) {
System.out.println(i );
i--;
}
// 2.打印出1-10之间的偶数
// 3.求1-100的和
int i1 = 1;
int sum = 0;
while(i1 < 101) {
sum += i1;
i1++;
}
System.out.println("sum = "+sum );
/**
* do{
* 循环体;
* 迭代;
* }while(控制条件);
* -----------
* 1 程序执行到do处,先执行循环体
* 2 再判断,如果结果为true
* 3 再执行do中的循环体
* 4 再次判断while,直到结果为false时,跳过dowhile结构
*/
int i3 = 10;
do{
System.out.println(i3 );
i3--;
}while(i3 > 0);
// 求1-100的奇数和 偶数和
int a = 1;
int oddSum = 0;// 奇数和
int evenSum = 0;// 偶数和
do{
if (a % 2 ==0) {
evenSum += a;
} else {
oddSum += a;
}
a++;
}while (a <= 100);
System.out.println("奇数和: "+oddSum );
System.out.println("偶数和: "+evenSum );
/**
* for(初始变量;控制条件;迭代){
* 循环体
* }
*/
for(int i4 = 10;i4 > 0;i4--) {
System.out.println(i4 );
}
}
本文地址:https://blog.csdn.net/weixin_53326302/article/details/110940357
上一篇: python的基础学习 第二天
下一篇: Swing-实现拖拽支持