JAVA第一周小结(下)

  1. 自增和自减

   自增和自减: 可以让一个变量自身增加1或者减去1

 语法格式

  变量++; 先执行当前的操作 ,然后自身在增加1

a++;

++变量;先自身加1,然后再执行其他的操作

++a;  

变量--;  先执行当前的操作,然后执行自身减1

a--;

--变量;  先自身减1,然后再执行其他的操作

--a;

package com.qf.a_yunsuan;

public class Demo1 {
	public static void main(String[] args) {
		//关于自增和自减的代码
		int num1 = 10;
		//num1++   ++在变量的后面,先执行当前的操作(输出语句),然后再自身加1
		System.out.println(num1++);//10
		System.out.println(num1);//11
		
		int num2 = 5;
		//++num2   ++在变量的前面,先自身增加1 然后再执行接下来的操作
		System.out.println(++num2);//6
		System.out.println(num2);//6
		
		int num3 = 4;
		System.out.println(num3--);//4
		System.out.println(num3);//3
		
		
		int num4 = 3;
		int ret = num4++ * num4;
		System.out.println(ret);//12
		System.out.println(num4);//4
		
		int num5 = 3;
		int ret1 = num5 * num5++;
		System.out.println(ret1);//9
		
		int num6 = 2;
		int ret2 = ++num6 * num6;
		System.out.println(ret2);//9
		
		int num7 = 2;
		int ret3 = num7 * ++num7;
		System.out.println(ret3);//6
		//总结:  真实不会有这么麻烦  就是一个简单的自身增加1或者自身减1效果而已
		
		
	}
}
  • 关系运算符

> (大于)   <(小于)   >=(大于等于)   <= (小于等于)  ==(是否等于)    !=(是否不等于)

变量1 >  变量2  例如:   a >   b

常量1  >  常量2 例如:   2  >  3

他们结果是布尔类型的数据   true   or false

package com.qf.a_yunsuan;

public class Demo2 {
	public static void main(String[] args) {
		
		//将 3 > 4的结果赋值给   ret1 变量
		boolean ret1 = 3 > 4;
		System.out.println(ret1);//false
		
		int a = 3;
		int b = 4;
		System.out.println(a < b);//true
		
		
		System.out.println(a++ >= b);//false
		System.out.println(a >= b);//true
		
		
		int c = 8;
		int d = 7;
		System.out.println(--c <= d);//true
		
		
		System.out.println(c++ == d);//true
		
		
		System.out.println(1 != 1);//fasle
		
	}
}

3.逻辑运算符

&&    ||  !

结果也是布尔类型的数据

4.短路原则

与短路原则: 只要有一个false的条件 后面的表达式不再执行了

或短路原则:  只要有一个true的表达式  后面的表达式就不执行了

package com.qf.a_yunsuan;

public class Demo3 {
	public static void main(String[] args) {
		//逻辑运算符:由关系运算符的表达式和&&  组成的
		//ret = true && true  整体就为true
		boolean ret = (4 > 1) && (7 < 8);
		System.out.println(ret);//true
		//ret1 = true  && false && true   只有有一个为false 中整体的结果就为false
		boolean ret1 = 1 < 3 && 2 > 4 && 7 > 1;
		System.out.println(ret1);
		int a = 20;
		int b = 30;
		int c = 10;
		int d = 80;
		//ret2 = false && false    整体为false
		boolean ret2 = (a > b) && (c > d);
		System.out.println(ret2);//false
		
		
		
		
		
		
	}
}
package com.qf.a_yunsuan;

public class Demo4 {
	public static void main(String[] args) {
		//逻辑或
		//ret = false || true
		boolean ret = 2 > 3 || 6 > 1;
		System.out.println(ret);//true
		boolean ret1 = 1 > 3 || 3 > 7 || 8 > 9 || 10 > 8;
		System.out.println(ret1);//true
		
	}
}
package com.qf.a_yunsuan;

public class Demo5 {
	public static void main(String[] args) {
		
		boolean ret = !(3 > 4);
		System.out.println(ret);//true
		
		
		//ret1 = true && false
		// false || true 
		boolean ret1 = (3 > 2) && (4 > 5) || (5 > 3);
		System.out.println(ret1);//true
		//false || false 
		//从这个地方可以说下  与优先级高于或的优先级
		boolean ret2 = !(((8 > 7) || (7 > 9)) && (8 < 4) || (6 > 7) && (6 > 7));
		System.out.println(ret2);
		
	}
}
package com.qf.a_yunsuan;

public class Demo6 {
	public static void main(String[] args) {
		
		//逻辑与的短路原则:  一旦碰到表达式为false  后面的表达式不再执行
		int num1 = 10;
		boolean ret = (3 < 1) && (++num1 > 8);
		System.out.println(ret);//false
		System.out.println(num1);//10
		
		
		
		int a = 11;
		//false || false ||  true
		boolean ret1 = (3 < 1 ) ||(a++ > 12) || (a++ >=11);
		System.out.println(ret1);//true
		System.out.println(a);//13
	}
}

5.分支

5.1   1.语法格式    2.执行流程

if分支

if (布尔表达式) {

语句体

}

package com.qf.a_yunsuan;

public class Demo9 {
	public static void main(String[] args) {
		
		//如果用户名和密码都是对的,则输出登陆成功  用if来写
		int user = 111;
		int password = 123;
		if (user == 111 && password == 123) {
			System.out.println("登陆成功");
		}
	}
}

 5.2     if-else分支

语法格式:

if (布尔表达式) {

语句体1

} else {

语句体2

}

执行流程: 如果布尔表达式为true 执行语句体1 ,如果布尔表达式为false 执行 语句体2

最重要的看布尔表达式值。 两者只能选择其一

package com.qf.a_yunsuan;

public class Demo12 {
	public static void main(String[] args) {
		
		//判断一个年份是否是闰年
		//分析:   是闰年   不是闰年  if-else
		//一个年份 :   在Java中咋表示
		//闰年: 能被4整除的并且不能100整除 或者能被400整除的是闰年
		int year = 2001;
		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
			System.out.println("是闰年");
		} else {
			System.out.println("不是闰年");
		}
		
		
	}
}

 5.3   if-else if分支

  语法格式:

 if (布尔表达式1) {

语句体1

} else if (布尔表达式2) {

语句体2

} else if (布尔表达式n) {

语句体n

} else {

语句体n+1

}

执行流程:

如果碰到if语句后面的小括号中的表达式为true的时候,就执行相对应的大括号后面的语句体

其他语句体一概不执行

应用场景: 多种情况

package com.qf.a_yunsuan;

public class Demo13 {
	public static void main(String[] args) {
		
		/**
		 * 学生成绩的等级问题:
		 * 		90~100  打印优秀
		 * 		80~89  打印良好
		 * 		70~79  打印一般
		 * 		60~69 打印及格
		 * 		60分以下  叫家长
		 * 		结果是多个分支   用if-esle if
		 */
		int score = 31;
		
		
		if (score <= 100 && 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 {
			System.out.println("叫家长");
		}
	}
}

5.4.if嵌套

一个if语句中再写另外一个if语句

package com.qf.a_yunsuan;

public class Demo14 {

	public static void main(String[] args){
		//嵌套写法
		//年龄满18岁,体重达标   才能献血
		int age = 19;
		int weight = 80;
//		if (age >= 18 && weight >= 50) {
//			System.out.println("去献血");
//		}
		if (age >= 18) {
			//age >= 18 如果年龄达标  再判断体重
			if (weight >= 50) {
				System.out.println("可以去献血");
			} else {
				System.out.println("年龄达标,但是体重不达标");
			}
			
		} else {
			//age < 18
			System.out.println("未成年不能献血");
			
		}
	}
}

5.5. switch-case 分支

也是一种选择,类似与 if-else if 分支

多种选择

语法格式:

swicth (表达式) {

case 常量1:

语句体1;

break;

case 常量2:

语句体2;

break;

case 常量3:

语句体3;

break;

...

default:

语句体n;

break;

}

执行流程: switch后面小括号中的表达式值 去和 case后面的常量进行匹配。如果他们两个一样的话

就执行当前的语句体,其他语句体不执行

package com.qf.a_yunsuan;

public class Demo15 {
	public static void main(String[] args) {
		
		//使用switch-case 写
		/**
		 * 按1 给妈妈打电话
		 * 按2 给爸爸打电话
		 * 按3 给奶奶打电话
		 * 按4给爷爷打电话
		 * 按其他键 个110
		 */
		int num = 1;
		switch (num) {
			case 1:
				System.out.println("给妈妈打电话");
				break;//终止  打断
			case 2:
				System.out.println("给爸爸打电话");
				break;
			case 3:
				System.out.println("给奶奶打电话");
				break;
			case 4:
				System.out.println("给爷爷打电话");
				break;
			default:
				System.out.println("110");
				break;
		}
		
		
		System.out.println("================");
		//使用if - else if形式来写
		if (num == 1) {
			System.out.println("给妈妈打电话");
		} else if (num == 2) {
			System.out.println("给爸爸打电话");
		} else if (num == 3) {
			System.out.println("给奶奶打电话");
		} else {
			System.out.println("110");
		}
		
		//总结:  if-else if  和switch-case 的功能可以相互转  可以实现相等的功能
		//但是表示式不一样
	}
}

5.6. switch-case 的面试题

switch(表达式) {

}

表达式可以是什么类型的数据

byte short int char String 枚举

package com.qf.a_yunsuan;

public class Demo17 {
	public static void main(String[] args) {
		
		byte a = 12; //可以
		//short a = 12;可以
		//int a = 12; 可以
		//long a = 12;  不可以
		//String a = "好久上班还好";可以
		//boolean a = true;  不可以
		//float f1 = 98.8f; 不可以
		//char ch = 'a';可以的
		//Cannot switch on a value of type long.
		//Only convertible int values, strings or enum variables are permitted
		switch (a) {
		case 'a':
			
			break;

		default:
			break;
		}
	}
}
  1. 扩展

还有其他的形式对变量进行赋值,通过控制台进行输入 给变量进行赋值

步骤:

1.import java.util.Scanner;

2.在main主函数中 Scanner sca = new Scanner(System.in);

3.将控制台输入的数据赋值给Java代码中的变量

package com.qf.a_yunsuan;

//1.需要使用Java的封装好的类叫Scanner  扫描器
import java.util.Scanner;
public class Demo18 {
	
	public static void main(String[] args) {
		
		//2.创建一个对象  这个行代码是固定的写法
		//sca 变量名字  用就用sca
		Scanner sca = new Scanner(System.in);
		
		System.out.println("请输入一个数:");
		//3.将控制台输入的一个int类型的数 赋值给变量  a
		//控制台输入的一个数,在Java中用一个变量来接收到
		int a = sca.nextInt();
		
		System.out.println("Line 17:"+a);
		
	}
}
package com.qf.a_yunsuan;

import java.util.Scanner;

public class Demo19 {
	public static void main(String[] args) {
		Scanner sb = new Scanner(System.in);
		//获取控制台输入的int类型的数据
//		System.out.println("请输入一个整数:");
//		int a = sb.nextInt();
//		System.out.println("Line11: " + a);
		//获取控制台输入的byte类型的数据
//		System.out.println("请输入一个整数:");
//		byte b = sb.nextByte();
//		System.out.println("Line14:" + b);
		//获取控制台输入的float类型的数据
//		System.out.println("请输入一个小数:");
//		float f1 = sb.nextFloat();
//		System.out.println("Line18:" + f1);
		//获取控制台输入的布尔类型的数据
//		System.out.println("请输入一个布尔类型的数据:");
//		boolean b1 = sb.nextBoolean();
//		System.out.println("Line23:" + b1);
		//获取控制台输入的字符串类型的数据
//		System.out.println("请输入一个字符串:");
//		String str = sb.next();//获取控制台字符串的方法
//		System.out.println("呵呵哒:" +str);
		
		//获取控制台输入的字符类型的数据
		System.out.println("请输入一个字符串:");
		//sb.next()  取控制台的字符串的:  例如   abcdef
		//charAt(0)   取你字符串中  第一个位置的字符   a 
		//charAt(1)取你字符串中  第二个位置的字符   b 
		char ch = sb.next().charAt(0);
		System.out.println("Line32:" + ch);
		//字符的获取 是在字符串的基础之上  获取的
		
		
		
		
	}
}
package com.qf.a_yunsuan;

import java.util.Scanner;

public class Demo20 {
	public static void main(String[] args) {
		//看学生的成绩
		
		//请输入学生的成绩,判断学生的等级
		Scanner  scann = new Scanner(System.in);
		
		System.out.println("请输入学生的成绩:");
		int score = scann.nextInt();
		
		if (score >= 90 && score <= 100) {
			System.out.println("优秀");
		} else if (score >= 80) {
			System.out.println("良好");
		} else {
			System.out.println("叫家长");
		}
	}
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值