Java大数据学习第三天---Java运算符、if分支结构、switch选择结构、for循环

本文详细介绍了Java中的算术、赋值、比较、逻辑运算符以及字符串连接符和三目运算符的用法。同时,深入探讨了分支结构if和switch的选择结构,强调了switch的注意事项和使用细节。通过多个案例展示了循环结构for的应用,包括遍历、计算和条件判断。此外,文章还涵盖了逻辑运算符的使用,如与、或、非操作。案例涵盖了从基础的条件判断到复杂的嵌套分支和循环结构,旨在帮助读者掌握Java控制流程的运用。
摘要由CSDN通过智能技术生成

Java运算符

  1. 算术运算符:+ 加 、 - 减、* 乘、 / 除 、% 取余 、++自增 、–自减
  2. 赋值运算符:+= 、 -= 、 *= 、 /= 、 %= 、
  3. 比较运算符(关系运算符):> 、 < 、 >= 、 <= 、== 、 != 、
  4. 逻辑运算符:& 、| 、&& 、 || 、! 、
  5. 字符串连接符: +
  6. 三目运算符(三元运算符): (条件)?数据1:数据2

运算符速查表

分支结构 if

img

选择结构switch

选择结构switch

  • 总结:
  • 1.变量a的类型支持byte、short、char、int、String
  • 2.会拿着变量a的值依次与每个case后的值作比较,如果不加break,会向后穿透所有case,包括default
  • 3.如果设置了保底选项default,并且前面没有任何case被匹配到的话,就执行default
  • 4.break和default是可选项,根据具体的业务决定加不加
  • switch结构
  • switch结构的注意事项
    1. switch 语句中的变量类型可以是: byte、short、int 、char、String(jdk1.7以后支持)
    2. switch 语句可以拥有多个 case 语句
    3. 每个 case 后面跟一个要比较的值和冒号,且此值的数据类型必须与变量的数据类型一致
    4. 当变量值与 case 语句值相等时,开始执行此case 语句的内容,执行完会判断此行代码是否有break,如果有,结束执行,如果没有,会继续向后执行穿透所有case,包括default
    5. switch 语句可以包含一个 default 分支,该分支一般是写在switch 语句的最后
    6. 如果在default之前的case有break,则default不会执行

循环结构

1.for循环

  • 结构:

    for(初始语句;循环条件;循环控制语句----更改条件){

    ​ 循环体;

    }

今日案例

1.案例一
package cn.tedu.basic;

import java.util.Scanner;

/**本类用于练习分支结构*/
public class TestIf {
	public static void main(String[] args) {
		//需求:接收用户输入的数据 只要输入的数据是66,就打印恭喜
		System.out.println("请输入数据:");
		int a = new Scanner(System.in).nextInt();
		
		if(a==66) {
			System.out.println("恭喜你猜对了");
		}
		if(a!=66){
		System.out.println("没猜对");
		}
	}
}
2.案例二
package cn.tedu.basic;

import java.util.Scanner;

/**本类用于测试三元运算符*/
public class TestMaxNumber {
	public static void main(String[] args) {
		//1.提示并接收用户输入的两个整数a和b
		System.out.println("请您输入要比较的第一个数:");
		int a = new Scanner(System.in).nextInt();
		System.out.println("请您输入要比较的第二个数:");
		int b = new Scanner(System.in).nextInt();
		//比较接收到的两个数,使用三元运算符
		/**1?2:3
		 * 1 是表达式  如果1结果为true 结果取2位置 如果1结果为false 结果取3位置
		 * */
		int max ;//定义变量保存最大值
		max = a>b?a:b;//将a、b之间的大值赋值给max
		System.out.println("两个数的最大值为:"+max);
		/**思考题:如何让用三元运算符求三个数的最大值*/		
}
3.案例三
package cn.tedu.basic;
/**本类用于测试运算符*/
public class TestOperator {
	//创建入口函数main
	public static void main(String[] args) {
		//1.测试除法与取余数
		System.out.println(25/10);//2
		System.out.println(25%10);//5
		
		//2.练习一 获取一个两位数的十位与个位
		int a = 59;
		System.out.println(59/10);//打印十位:5
		System.out.println(59%10);//打印个位:9
		
		//3.练习二:获取百位,十位,个位
		int b = 129;
		System.out.println(129/100);//百位 1
		System.out.println((129/10)%10);//十位 2 
		System.out.println(129%10);//个位 9
		
		//4.测定自增自减运算符
		/**
		 * 前缀式:符号在前:++a  --a  ,先改变变量本身的值,再使用
		 * 后缀式:符号在后:a++  a--  ,先使用,再改变变量本身的值
		 * ++:相当于给变量本身+1
		 * --:相当于给变量本身-1
		 * */
		System.out.println("我是一个无情的分界线");
		
		int z = 1;
		System.out.println(z+4);//5
		System.out.println(z);//1
		/**普通的四则运算并不会改变变量本身的值
		 * 自增自减运算符才会改变变量本身的值*/
		z = z+10;//除非将四则运算的结果再重新赋值给变量
		System.out.println(z);//这个时候z的值才为11
		
		int a1=1;
		System.out.println(++a1);//2
		System.out.println(a1);//2
		int b1=1;
		System.out.println(b1++);//1
		System.out.println(b1);//2
		int c=1;
		System.out.println(--c);//0
		System.out.println(c);//0
		int d = 1;
		System.out.println(d--);//1
		System.out.println(d);//0
		
		System.out.println(c);//0
		System.out.println(--c-c-c--);//1     /**--c = -1   c=-1    -(-1)    c-- =-1   (-1)-(-1)-(-1)*/
		System.out.println(c);//-2
		
		
		
	}
}
4.案例四
package cn.tedu.basic;
/**本类用于测试逻辑运算符*/
public class TestOperator2 {
	public static void main(String[] args) {
		/**与:全真才真*/
		System.out.println("测试单与");
		System.out.println(true&true);//true
		System.out.println(true&false);//false
		System.out.println(false&true);//false
		System.out.println(false&false);//false
		System.out.println("测试双与");//短路与 当左边为false 结果为false 右边不运算
		System.out.println(true&&true);//true
		System.out.println(true&&false);//false
		System.out.println(false&&true);//false
		System.out.println(false&&false);//false
		
		/**或:全假才假*/
		System.out.println("测试单或");
		System.out.println(true|true);//true
		System.out.println(true|false);//true
		System.out.println(false|true);//true
		System.out.println(false|false);//false
		System.out.println("测试双或");//短路或 当左边为true 结果为true 右边不运算
		System.out.println(true||true);//true
		System.out.println(true||false);//true
		System.out.println(false||true);//true
		System.out.println(false||false);//false
		
		
	}
}
5.案例五
package cn.tedu.basic;

import java.util.Scanner;

/**本类用作运算符综合案例
 * 需求:接受用户输入的年份 判断是平年还是闰年*/
//闰年满足条件:1.能被400整除   2.能被4整除且不能被100整除
public class TestYear {
	public static void main(String[] args) {
		//1.提示并接收用户输入的年份
		System.out.println("请输入年份:");
		int year = new Scanner(System.in).nextInt();
		//2.定义一个变量用来保存最终结果
		String result = "平年";//结果默认是平年,假设每年都是平年
		
		//3.判断用户输入的年份是否符合闰年的条件
		/**解决方案一*/
//		if(year%400==0) {
//			result="闰年";
//		}
//		if(year%4==0&&year%100!=0) {
//			result="闰年";
//		}
		/**解决方案二*/
		//if(条件1||条件2){是闰年}
		//if(条件1||(小条件1&&小条件2)){是闰年}
		if((year%400==0)||(year%4==0&&year%100!=0)) {
			result="闰年";
		}
		
		
		//4.将最终结果输出
		System.out.println(year+"年是"+result);
	}
}
6.案例六
package cn.tedu.basic2;

import java.util.Scanner;

/**本类用于练习嵌套分支结构*/
//需求:接收用户输入的原价,满10000打5折,满8000打7折,满5000打9折
public class TestDiscount {
	public static void main(String[] args) {
		//1.提示并接收用户输入的原价
		System.out.println("请您输入商品原价:");
		double price = new Scanner(System.in).nextDouble();
		//2.定义一个变量 保存打折后的价格
		double count = price;//初始值是商品原价
		//3.判断用户打折的段位
		if(price>=10000) {
			count=price*0.5;
		}else if(price>=8000) {
			count = price*0.7;
		}else if(price>=5000) {
			count=price*0.9;
		}
		/*
		 * 在嵌套分支结构中,要将比较难完成的条件写在上边,起到筛选过滤的作用,代码比较简单
		 * *****/		
		
		//输出结果
		System.out.println("您实际应支付:"+count);
	}
}
7.案例七
package cn.tedu.basic2;
/**本类用于测试for循环结构*/
public class TestFor {
	public static void main(String[] args) {
		/*
		 * for(int i=0;i<=10;i++) { System.out.println(i); }
		 */
		//需求:输出100次 小可爱们下午好~~
		/*
		 * for(int i =1;i <=100;i++) { System.out.println("小可爱们下午好~~"); }
		 */
		//需求:打印1~10
		//1 2 3 4 5 6 7 8 9 10
		//从那开始:1
		//到那结束:10
		//怎么变化:++
		for(int i = 1;i<=10;i++) {
			System.out.println(i);
		}
		//打印10~1
		//从那开始:10
		//到那结束:1
		//怎么变化:--
		for(int a = 10;a>=1;a--) {
			System.out.println(a);
		}
		
		//需求:打印 8,88,888,8888
		//从哪开始:8
		//到哪结束:8888
		//怎么变化:*10+8
		for(int i =8;i<=8888;i=i*10+8) {
			System.out.print(i+",");
		}
		
	}
}
8.案例八
package cn.tedu.basic2;

import java.util.Scanner;

/**本类用于练习嵌套分支结构*/
//需求:接受输入的学生成绩,判断档位并输出
//90分以上---优秀
//80-89---良好
//70-79---中等
//60-69---及格
//60分以下---不及格
public class TestScore {
	public static void main(String[] args) {
		//1.提示并接受学生成绩
		System.out.println("请输入你的成绩:");
		int score = new Scanner(System.in).nextInt();
		//2.判断学生成绩并直接输出结果
		//要求:1.在分支中直接输出结果    比如打印:优秀!
		//要求:2.要使用else
		
		
		/**为了增强程序的健壮性,如果用户输入的数据不符合规则,就结束*/
//		if(score>100||score<0) {//用户输入的数据不正确,结束
//			System.out.println("您输入的数据不合法,无法判断!");
//		}else {//用户输入的数据不正确,判断
//			if(score>=90) {
//				
//				System.out.println("优秀!");
//			}else if(score>=80) {
//				System.out.println("良好!");
//			}else if(score>=70) {
//				System.out.println("中等!");
//			}else if(score>=60){
//				System.out.println("及格!");
//			}else if(score>=0){
//				System.out.println("不及格");
//			}
//		}
//		
		
		
		String a = "不及格";
		if(score>=90&&score<=100) {
			a="优秀!";
			System.out.println("您的分数"+score+a);
		}else if(score>=80&&score<90) {
			a="良好";
			System.out.println("您的分数"+score+a);
		}else if(score>=70&&score<80) {
			a="中等";
			System.out.println("您的分数"+score+a);
		}else if(score>=60&&score<70){
			a ="及格";
		}else if(score>=0&&score<60){
			System.out.println("您的分数"+score+a);
		}else {
			System.out.println("您输入的不是正确的分数!");
		}
	
		
		
		
		
	}
}
9.案例九
package cn.tedu.basic2;
/**本类用于练习选择结构switch
 * 总结:
 * 1.变量a的类型支持byte、short、char、int、String
 * 2.会拿着变量a的值依次与每个case后的值作比较,如果不加break,会向后穿透所有case,包括default
 * 3.如果设置了保底选项default,并且前面没有任何case被匹配到的话,就执行default
 * 4.break和default是可选项,根据具体的业务决定加不加
 * */
public class TestSwitch {
	public static void main(String[] args) {
		//1.定义一个变量
		int a = 3;
		//2.完成switch结构
		switch (a) {
		case 1 :System.out.println(1);break;
		case 2 :System.out.println(2);break;
		case 3 :System.out.println(3);break;
		case 4 :System.out.println(4);break;
		case 5 :System.out.println(5);break;
		case 6 :System.out.println(6);break;
		case 7 :System.out.println(7);break;
		default:System.out.println(0);//默认选项,不加break
		}
		
		String day ="星期二";
		switch(day) {
		case "星期一" :System.out.println("星期一吃北京烤鸭");break;
		case "星期二" :System.out.println("星期二吃武汉藕汤");break;
		case "星期三" :System.out.println("星期三吃南昌拌粉");break;
		case "星期四" :System.out.println("星期四吃兰州拉面");break;
		case "星期五" :System.out.println("星期五吃成都串串香");break;
		case "星期六" :System.out.println("星期六吃潮汕砂锅粥");break;
		case "星期日" :System.out.println("星期日吃杭州小笼包");break;
		default:System.out.println("想吃点啥吃点啥吧");
		}
		
		
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值