java运算符与if、switch、for、while、do..while语句

本文详细介绍了Java中的算术运算符、自增自减运算符、关系运算符、逻辑运算符、赋值运算符以及三元运算符的用法。此外,还深入探讨了if语句、switch语句、for循环、while循环和do...while语句的结构和应用场景。通过示例代码展示了如何利用这些知识解决实际问题,如水仙花数的判断、奇偶数之和的计算、根据月份确定季节以及逢七过的数字筛选。
摘要由CSDN通过智能技术生成

  • 对常量或变量进行操作的符号为运算符
  • 被运算符将常量或变量连接起来,并且符合java语法的句子被称为表达式

算术运算符

  • 当char字符参与运算时,提升为int整数,所对应的值为AscII表中的数值
  • 运算时的优先级为先乘除,再加减,从左到右,先算小括号中的表达式
算数运算符说明
+加号,遇到字符串则为连接符
-减号,数字相减
*乘号,数字相乘
/除号,整数相除只能得到整数,想得到小数必须有浮点数参与运算
%取余,两数相除,取余数

自增自减运算符

  • 大多数时候都是单独使用
自增自减运算符说明
i++变量先参与操作,然后自增
++i变量先自增,然后参与操作

关系运算符

  • 关系运算符的结果为布尔类型,值只为true或false
关系运算符说明
>大于
<小于
==等与
!=不等与
>=大于等于
<=小于等于

逻辑运算符

  • 逻辑运算符一般用于将关系运算符拼接起来
逻辑运算符说明
&与,遇false则false
|或,遇true则true
!非,取反
^异或,相同为false,不同为true
&&双与,遇false则false,左为false则直接跳过右边的判断,提升代码效率
||双或,遇true则true,左为true则直接跳过右边的判断,提升代码效率

赋值运算符

  • 赋值运算符左边必须是一个变量
赋值运算符说明
=赋值,将等号右边的值复制到左边
+=a += 1 即为 a = (a的数据类型)(a + 1),隐含强转
-=a -= 1 为 a = (a的数据类型)(a - 1),隐含强转
*=a *= 1 为 a = (a的数据类型)(a * 1),隐含强转
/=a /= 1 为 a = (a的数据类型)(a / 1),隐含强转
%=a %= 1 为 a = (a的数据类型)(a % 1),隐含强转

三元运算符

格式

对应数据类型 变量名 = 关系表达式 ? 位置1 : 位置2int max = a > b ? a : b
int min = a< b ? a : b

if语句

  • if为判断语句,若符合条件,则执行分支语句,否则去进行其它匹配或执行else中的语句

格式:

 if(判断条件){
	分支语句;
}
 if(判断条件){
	分支语句;
}else{
	分支语句;
}
if(判断语句){
	分支语句;
}else if(判断语句){
	分支语句;
}else{
	分支语句
}

switch语句

  • switch选择语句,若匹配到的分支中没有break语句,则会发生穿透现象,从匹配到的分支语句依次往下执行,直到遇到break或switch剩余分支语句执行完

格式:

switch(匹配数字变量){
	case 1:
		条件语句;
		break;
	case 2:
		条件语句;
		break;
	defult:
		条件语句;
}

for循环语句

  • 通常用于数字或索引遍历,for循环中初始化的变量在for循环执行完毕后即消失,不能在for循环外使用

格式:

for(变量初始化;判断条件;变量操作){
	循环体语句;
}

死循环

for(;;){
	循环体语句
}

while循环

  • 常使用死循环格式
    格式:
while(判断条件){
	循环体语句;
}

死循环

while(true){
	循环体语句;
}

do…while语句

  • 先执行一遍循环体语句再去进行判断,不常使用
    格式:
do{
	循环体语句;
}while(判断条件);

练习

  • 水仙花数
    一个三位数,个位立方+十位立方+百位立方=数字本身,则称这个数为水仙花数
    要求:打印出所有水仙数
    代码:
public class Demo{
	public static void main(String[] args){
	//定义计数器,初始值为0
		int count = 0;
		for (int i = 100; i <= 999; i++){
			//数据拆分
			int ge = i % 10;
			int shi = i / 10 % 10;
			int bai = i / 100;
			//判断并打印水仙数
			if (ge*ge*ge + shi*shi*shi + bai*bai*bai == i){
				System.out.print(i + " ");
				//打印一个,计一次数
				count++;
				//判断是否为2,是则换行
				if (count == 2){
					System.out.println();
				}
			}
		}
	}
}
  • 使用键盘录入两个整数,求这两个整数之间的奇数与偶数之和
    代码:
//导包
import java.util.Scanner;
public class Demo01{
	public static void main(String[] args){
		//提示并且接收数据
		//输入想打印的数字个数
		System.out.print("请输入起始数字:");
		int num = new Scanner(System.in).nextInt();
		System.out.print("请输入结束数字:");
		int num2 = new Scanner(System.in).nextInt();
		int sum = 0;
		int sum1 = 0;
		for (int i = num; i <= num2; i++){
			//求奇数之和
			if (i % 2 != 0){
				sum += i;
			}else {
			//求偶数之和
				sum1 += i;
			}
			}
		System.out.println(num + "到" + num2 + "的奇数之和为:" + sum);
		System.out.println(num + "到" + num2 + "的偶数之和为:" + sum1);
	}
}
  • 输入月份,打印相应季节(switch语句)
    代码:
//导包
import java.util.Scanner;
public class Demo02{
	public static void main(String[] args){
		//提示并接收数据
		System.out.println("请输入月份(1-12)");
		int month = new Scanner(System.in).nextInt();
		//使用Switch进行匹配
		switch(month){
			case 12:
			case 1:
			case 2:
				System.out.println("冬天");
				break;
			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;
			default:
				System.out.println("请输入正确月份");
				break;
		}
	}
}
  • 珠峰折纸
    珠穆朗玛峰高8848.44m,一张纸的厚度为0.1mm,不考虑纸张大小,则纸张对折多少次高度可以超过珠峰
    代码:
//珠峰折纸
public class Demo03{
	public static void main(String[] args){
		// 定义计数器
		int count = 0;
		//定义纸张厚度
		double hight = 0.1;
		//若hight<=8848440,则循环继续
		while (hight < 8848440){
			hight *= 2;
			//计数器自加1
			count ++;
		}
		//打印折叠次数
		System.out.println(count);
	}
}
  • 逢七过
    获取范围[1-1000]的整数,如果是7的倍数的、或者包含7的要跳过,打印满足条件的数字
    代码:
//逢七过
public class Demo04{
	public static void main(String[] args){
		//计数器
		int count = 0;
		//遍历1到1000
		for (int i =1; i <= 1000; i++){
			//数值拆分
			int ge = i % 10;
			int shi = i / 10 % 10;
			int bai = i / 100;
			//判断是否含7或为7的倍数
			if (ge != 7 && shi != 7 && bai != 7 && i % 7 != 0){
				System.out.print(i + " ");
				count++;
				//换行判断
				if (count % 5 == 0){
					System.out.println();
				}
			}
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值