一、位运算
class Demo01 {
public static void main(String[] args) {
int a = 5;
int b = 3;
/*
0000 0101
|0000 0011
==========
0000 0111 = 7
*/
System.out.println(a | b);
/*
0000 0101
&0000 0011
==========
0000 0001 = 1
*/
System.out.println(a & b);
/*
异或
0000 0101
^0000 0011
==========
0000 0110
*/
System.out.println(a ^ b);
}
}
二、流程控制
-
顺序结构
class Demo02 { public static void main(String[] args) { // 顺序结构,代码自上向下顺序执行 System.out.println("Hello World!1"); System.out.println("Hello World!2"); System.out.println("Hello World!3"); System.out.println("Hello World!5"); System.out.println("Hello World!4"); System.out.println("Hello World!6"); System.out.println("Hello World!7"); System.out.println("Hello World!" + a); int a = 8; } }
-
分支结构
-
循环结构
三、分支结构–if
3.1 语法结构
if(判断条件){
条件为true的时候执行的代码
}
if java中的关键字
判断条件
可以直接书写boolean值
也可以是返回值是boolean类型的表达式
{} 满足条件–条件为true时候执行的代码
3.2 if
class Demo03 {
public static void main(String[] args) {
System.out.println("Hello World!");
// 假设你穿越到了888年,只能带10元钱的东西,你想带什么过去
int year = 88;
/*
if(年份是888年){
我希望携带一些物品过去
}
*/
if(year == 888){
System.out.println("我希望携带一些火锅丸子过去...");
}
// 判断一把刀是不是管制刀具
int knifeLen = 155;
if(knifeLen >= 220){
System.out.println("这个刀子是管制刀具,要没收...");
}
if(knifeLen < 220){
System.out.println("这个刀子不是管制刀具,可以携带...");
}
}
}
3.3 if…else
if(判断条件){
代码块1
}else{
代码块2
}
if 是java中的关键字,开启条件判断
判断条件是一个boolean类型的结果
代码块1是满足if中条件时候执行的代码
else是java中的关键字,if条件为false的时候执行else后面的代码块2
案例01
class Demo04 {
public static void main(String[] args) {
System.out.println("Hello World!");
int knifeLen = 150;
// if...else
if (knifeLen >= 220){
System.out.println("管制刀具");
}else{
System.out.println("非管制刀具");
}
}
}
案例02
import java.util.Scanner;
class Demo05 {
public static void main(String[] args) {
// 用户输入用户名和密码,判断是否成功登陆
/*
1、导入Scanner
2、创建Scanner对象
3、提示输入用户名
4、获取用户名
5、提示输入密码
6、获取密码
7、比较用户名和密码
8、输出结果
*/
int USERNAME = 123456789;
int PASSWORD = 987654321;
// 2、创建Scanner对象
Scanner in = new Scanner(System.in);
System.out.println("请输入QQ号码:");
int username = in.nextInt();
System.out.println("请输入QQ密码,只能是数字:");
int password = in.nextInt();
// 7、比较用户名和密码
if((username == USERNAME) && (password == PASSWORD)){
System.out.println(username + ",欢迎你.");
}else{
System.out.println("账号或者密码错误...");
}
}
}
3.4 if…else if…
if(判断条件1){
满足条件1执行的代码
}else if(判断条件2){
满足条件2执行的代码
}else if(判断条件3){
满足条件3执行的代码
}。。。else{
以上条件都不成立执行此处的代码
}
整个if。。else if判断中只要有一个成立的条件,就执行里面的代码,代码执行结束后整个if判断就结束了
import java.util.Scanner;
class Demo07 {
public static void main(String[] args) {
/*
键盘录入一个数字(1--7),输出对应日期需要上课的课程
1、导入Scanner
2、创建Scanner对象
3、提示输入日期1--7
4、获取日期
5、使用if判断,输出这一天需要上的课程
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入查询星期几的课程(1--7)");
int day = in.nextInt();
// 5、使用if判断,输出这一天需要上的课程
if(day == 1){
System.out.println("今天是星期一,需要上语文课.");
} else if(day == 2){
System.out.println("今天是星期二,需要上数学课.");
} else if(day == 3){
System.out.println("今天是星期三,需要上英语课.");
} else if(day == 4){
System.out.println("今天是星期四,需要上体育课.");
} else if(day == 5){
System.out.println("今天是星期五,需要上语文课.");
} else if((day == 6) || (day == 7)){
System.out.println("今天是星期" + day + ",需要休息.");
} else{
System.out.println("您查询的课程不存在...");
}
// 键盘录入一个月份,判断是什么季节
// 键盘录入一个年份,判断是不是闰年
}
}
输入月份显示季节
import java.util.Scanner;
class Demo08 {
public static void main(String[] args) {
/*
键盘录入一个数字(1--7),输出对应日期需要上课的课程
1、导入Scanner
2、创建Scanner对象
3、提示输入月份
4、获取月份
5、使用if判断,输出这个月份所在的季节
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入查询的月份(1--12)");
int month = in.nextInt();
// 键盘录入一个月份,判断是什么季节
// 使用if判断,输出这个月份所在的季节
if((month==3) || (month==4) || (month==5)){
System.out.println("春天到了,万物复苏,又到了万物生长的季节...");
} else if((month==6) || (month==7) || (month==8)){
System.out.println("夏天到了,天气酷热,小龙虾哈啤酒是非常不错的消暑产品...");
} else if(month>=9 && month<=11){
System.out.println("秋天到了,秋高气爽,到了收货的季节...");
} else if((month==12) || (month==1) || (month==2)){
System.out.println("冬天到了,天气寒冷,杭州的冬天会给你留下深刻的印象...");
} else{
System.out.println("月份不存在...");
}
}
}
3.5 if嵌套
if里面再书写if分支语句
if(条件1){
if(条件2){
执行满足条件1和条件2 的代码
}else{
执行满足条件1但不满足条件2的代码
}
}else{
执行不满足条件1的代码
}
3.5.1 乘车案例
import java.util.Scanner;
class Demo10 {
public static void main(String[] args) {
/*
模拟乘坐火车检票安检的过程
*/
Scanner in = new Scanner(System.in);
System.out.println("请出示你的车票(1=有票,0=无票):");
int ticket = in.nextInt();
// 判断有没有车票,如果有就可以去安检
if(ticket>=1){
// 提示输入安检情况
System.out.println("有没有携带违禁物品(true=有,false=无):");
boolean isDanger = in.nextBoolean();
// 判断安全情况
if(isDanger){
System.out.println("请跟我走一趟....");
}else{
System.out.println("安检通过,请排队候车...");
}
}else{
// 无票,提示去买票
System.out.println("请先去购买车票...");
}
}
}
3.5.2 压岁钱案例
import java.util.Scanner;
class Demo11 {
public static void main(String[] args) {
/*
根据压岁钱判断你要干啥
*/
Scanner in = new Scanner(System.in);
System.out.println("请问你是否有压岁钱:");
boolean hasLuckyMoney = in.nextBoolean();
if(hasLuckyMoney){
// 有压岁钱的时候
System.out.println("请输入收到压岁钱的金额:");
int luckyMoney = in.nextInt();
// 0--500去吃大餐,500-1000升级一下电脑配置,1000-10000买个自行车,大于10000就捐了
if((luckyMoney>0) && (luckyMoney<=500)){
System.out.println("收到了压岁钱很开心,准备请全村人吃大餐...");
} else if((luckyMoney>500) && (luckyMoney<=1000)){
System.out.println("收到了压岁钱很开心,升级一下电脑的配置...");
} else if((luckyMoney>1000) && (luckyMoney<=10000)){
System.out.println("收到了压岁钱很开心,买个自行车骑行去光明顶...");
} else if(luckyMoney>10000){
System.out.println("收到了压岁钱很开心,捐给更需要这个金钱的人...");
}
}else{
// 没有压岁钱
System.out.println("没有收到压岁钱说明你长大啦,可以给别人压岁钱<_>");
}
}
}
四、分支语句之-switch
- 转换、开关的意思
- 逐个进行匹配
switch(key){
case value1:
满足key==value1时候执行的代码
break;===终止switch的执行
case value2:
满足key==value2时候执行的代码
break;===终止switch的执行
。。。 。。。
default:
上面所有匹配都没成功时候执行的代码
break;===终止switch的执行
}
4.1 switch基本使用
import java.util.Scanner;
class Demo13 {
public static void main(String[] args) {
/*
根据星期几输出上课的内容
1、导入Scanner
2、创建Scanner对象
3、提示输出星期几day
4、获取输入的值
5、使用switch判断输出课程内容
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入今天是星期几(1--7):");
int day = in.nextInt();
// 5、使用switch判断输出课程内容
switch(day){
case 1:
System.out.println("今天是星期一,需要上语文课.");
break;
case 2:
System.out.println("今天是星期二,需要上语文课.");
break;
case 3:
System.out.println("今天是星期三,需要上语文课.");
break;
case 4:
System.out.println("今天是星期四,需要上语文课.");
break;
case 5:
System.out.println("今天是星期五,需要上语文课.");
break;
case 6:
System.out.println("今天是星期六,需要上语文课.");
break;
case 7:
System.out.println("今天是星期日,需要上语文课.");
break;
default:
System.out.println("这个时间不存在...");
break;
}
}
}
4.2 case穿透(直到遇到break才会停止)
import java.util.Scanner;
class Demo14 {
public static void main(String[] args) {
/*
根据星期几输出上课的内容
1、导入Scanner
2、创建Scanner对象
3、提示输入月份
4、获取输入的值
5、使用switch判断输出季节内容
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入月份(1--12):");
int month = in.nextInt();
// 5、使用switch判断输出季节内容
switch(month){
case 1:
System.out.println("一月份是冬季,很冷");
case 2:
System.out.println("二月份是冬季,很冷");
case 3:
System.out.println("三月份是春季,很冷");
case 4:
System.out.println("四月份是春季,很冷");
case 5:
System.out.println("五月份是春季,很冷");
case 6:
System.out.println("六月份是夏季,很热");
case 7:
System.out.println("七月份是夏季,很热");
case 8:
System.out.println("八月份是夏季,很热");
case 9:
System.out.println("九月份是秋季,很热");
case 10:
System.out.println("十月份是秋季,很热");
case 11:
System.out.println("十一月份是秋季,很热");
case 12:
System.out.println("十二月份是冬季,很热");
default:
System.out.println("月份不存在");
}
}
}
4.3 case穿透案例
import java.util.Scanner;
class Demo14 {
public static void main(String[] args) {
/*
根据星期几输出上课的内容
1、导入Scanner
2、创建Scanner对象
3、提示输入月份
4、获取输入的值
5、使用switch判断输出季节内容
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入月份(1--12):");
int month = in.nextInt();
// 5、使用switch判断输出季节内容
switch(month){
case 1:
case 2:
case 12:
System.out.println(month + "月份是冬季,很冷");
break;
case 3:
case 4:
case 5:
System.out.println(month + "月份是春季,很冷");
break;
case 6:
case 7:
case 8:
System.out.println(month + "月份是夏季,很热");
break;
case 9:
case 10:
case 11:
System.out.println(month + "月份是秋季,很热");
break;
default:
System.out.println("月份不存在");
break;
}
}
}
五、比较if和switch
成绩案例
import java.util.Scanner;
class Demo15 {
public static void main(String[] args) {
/*
0 --59 不及格
60--69 及格
70--79 一般
80--89 良好
90--100 优秀
*/
Scanner in = new Scanner(System.in);
System.out.println("请输入考试成绩(0--100):");
int score = in.nextInt();
if((score<0) || (score>100)){
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{
System.out.println("不及格,体验一下男女混合双打...");
}
}
}
}
-
if中的判断条件可以使等于某个具体的值,也可以是一个范围
- month==3
- score>=90
-
switch中case后面的值只能是byte,short、int、char、String范围内的值
-
无法使用范围进行操作,数字范围过大,或者内容不确定且情况复杂的时候不能使用switch
-
数值较少,内容固定的情况下可以使用switch
-
常量的判定推荐使用switch
-
六、局部变量
- 定义在方法中的变量
- 使用前必须先赋值—没有默认的值
- 作用范围只在当前方法里面
- 在同一个作用域中变量名字不能重复
- 生命周期是从创建到方法结束
class Demo16 {
public static void main(String[] args) {
/*
定义位置在方法中
使用前必须先赋值---没有默认的值
作用范围只在当前方法里面
在同一个作用域中变量名字不能重复
生命周期是从创建到方法结束
*/
int age = 20;
System.out.println("age=" + age);
// int age = 22;
// show();
age = 33;
}
public static void show() {
System.out.println("age=" + age);
}
}