Day02笔记
运算符
1.位运算
& | ^
3&6 = 2
3: 0000 0011
6 :0000 0110
结果: 0000 0010
3|7 = 7
0000 0011
0000 0111
0000 0111
3^7 = 4
0000 0011
0000 0111
0000 0100
左移右移运算符
<< >>
3<<2 = 12 3*22 = 12
3<<3 = 24 3*23= 24
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 |
6>>2= 1 6/22 =1
6>>3 =0 6/23 = 0
0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
自增自减运算符
++ -- 1
自增符号写到变量名称之后:先参与运算,再执行自增
前:先执行自增,再参与运算
自减符号写到变量名称之后:先参与运算,再执行自减
前:先执行自增,再参与运算
复合运算符 :一步进行加号运算和赋值运算,不需要强制转换
+= -=*=/=
三目运算(唯一的)
语法: 表达式1?表达式2:表达式3;
执行情况:表达式1结果为true,执行表达式2
False,执行表达式3
流程控制语句
判断语句 if 判断条件返回值必须是boolean值,
语法:if(判断条件){
代码块;
}
当代码块只有一句时,可以省略大括号。
If - else 表达式,比单个if语句执行效率高
If(条件表达式){
代码块1;
}else{
代码块2;
}
if else if :永远只执行某个条件的一个代码块
语法:if(表达式1){
代码块1;
}else if(表达式2){
代码块2;
}else if(表达式3){
代码块3;
}
......
else{
代码块1;
}
分支语句
switch case key是值,常量,key的类型只可以是int short byte char
语法:switch(key){
case key1:
代码块1;
break;
case key2:
代码块2;
break;
case key3:
代码块3;
break;
.....
default:
代码块
break;
}
If -else 和switch语句的区别:判断是范围的情况使用if;判断的值是固定的值、个数使用switch. If语句可以代替switch.
循环结构
三种循环体系
while
语法:
while(条件表达式){
代码块;
}
do while
语法:
do{
代码块;
}while(条件表达式);
While和do while循环的区别:条件不满足时,while循环不执行,dowhile循环执行一次。
for
语法:
for(初始部分; 条件表达式;迭代部分){
代码块;
}
While循环和for循环的区别:while循环次数未知。For循环的次数是已知的固定的。
嵌套循环 for循环的嵌套
public class Day02_01{
public static void main(String[] args){
//位运算
//System.out.println(3^7);
/*左移右移
System.out.println(6>>2);*/
//自增自减
/*int i = 10;
int j = 1 + i--;
int h = --i+1 ;
System.out.println("....j:"+j+"i:"+i);
System.out.println("....h:"+h);*/
//复合运算符
/*int i = 10;
i = i +1 ;
i += 1;
System.out.println("....i:"+i);*/
/*short i = 10;
//i = i +1 ;//从int转换到short可能会有损失
i += 1;
System.out.println("....i:"+i);*/
//三目运算符
int a = 10;
int b = 3<2 ? 3: 6;
System.out.println("....b:"+b);
}
}
public class Day02_02{
public static void main(String[] args){
/*if判断语句*/
/*int a = 10;
if(a>8){
System.out.println("判断语句执行11");
}
if(a<8){
System.out.println("判断语句执行22");
}
System.out.println("----------分隔符---------");
if(a>8){
System.out.println("判断语句执行33");
}else{
System.out.println("判断语句执行44");
}*/
/*int a = 10;
int b = 3<2 ? 3: 6;
System.out.println("....b:"+b);*/
//作用域
/*int a = 10;
int b;
if(3<2){
b = 3;
}else{
b = 6;
}
System.out.println("....b:"+b);*/
/*if - else if -else*/
/*int score = 70;
if(score >= 60 && score < 70){
System.out.println("一般");
}else if(score >= 70 && score < 80){
System.out.println("良");
}else if(score >= 80 && score < 90){
System.out.println("优良");
}else if(score >= 90 && score <= 100){
System.out.println("优");
}else{
System.out.println("不及格");
}*/
/*一周7天
switch穿透:匹配上一个条件时,其余的都不管,直接进行执行。
break:跳出循环
*/
boolean day = true;
switch(day){ //不兼容的类型: boolean无法转换为int 为什么?
case true:
System.out.println("星期1");
break;
case false:
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("不匹配");
break;
}
}
}
public class Day02_03{
public static void main(String[] args){
//while循环语句
/*int i = 1;
while(i<3){
System.out.println("while循环语句");
i++;
}
System.out.println("结束");*/
//输出1-100 以内的7的倍数
/*int i = 1;
while(i<=100){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i++;
}*/
/*int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}*/
/*int i = 0;
while(i>=1){
System.out.println("进入while循环");
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
System.out.println("---------分隔符-----------");
int j = 0;
do{
System.out.println("进入do while循环");
if(j%7 == 0 ){
System.out.println("j:"+j);
}
j--;
}while(j>=1);*/
/*int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}*/
/*for(int i = 100; i >= 1 ; i--){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
}*/
/*
*****
*****
*****
*****
*****
*/
for(int i = 0 ;i<5; i++){
for(int j = 0 ; j< 5;j++){
System.out.print("*");
}
System.out.println();
}
}
}
public class Practice_01{
public static void main(String[] args){
boolean vip = true;//会员,false为非会员,true为会员
double buy_money = 100;
double discount_money = 0;//折扣金额
double real_money = 0;//实际支付金额
//从是否为会员的角度来分析
if(vip){//会员
if(buy_money >= 100){
discount_money = buy_money * (1 - 0.8);
}else{
discount_money = buy_money * (1 - 0.9);
}
}else{//非会员
if(buy_money >= 100){
discount_money = buy_money * (1 - 0.9);
}
}
System.out.println("1折扣金额discount_money:"+discount_money);
System.out.println("1实际支付金额real_money:"+(buy_money-discount_money));
//从打9折打8折的角度分析
if((vip==true && buy_money < 100)|| (vip == false && buy_money >= 100)){//9折
discount_money = buy_money * (1 - 0.9);
}else if(vip==true && buy_money >= 100){//8折
discount_money = buy_money * (1 - 0.8);
}else{
discount_money = buy_money ;
}
System.out.println("2折扣金额discount_money:"+discount_money);
System.out.println("2实际支付金额real_money:"+(buy_money-discount_money));
/*while循环语句
int i = 1;
while(i<3){
System.out.println("while循环语句");
i++;
}
System.out.println("结束");
*/
//输出1-100 以内的7的倍数
/*int i = 1;
while(i<=100){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i++;
}
int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
int i = 0;
while(i>=1){
System.out.println("进入while循环");
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
System.out.println("---------分隔符-----------");
int j = 0;
do{
System.out.println("进入do while循环");
if(j%7 == 0 ){
System.out.println("j:"+j);
}
j--;
}while(j>=1);
int i = 100;
while(i>=1){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
i--;
}
for(int i = 100; i>=1 ; i--;){
if(i%7 == 0 ){
System.out.println("i:"+i);
}
}
*/
/*
*****
*****
*****
*****
*****
*/
/*for(int i = 0 ;i<5; i++){
for(int j = 0 ; j< 5;j++){
System.out.print("*");
}
System.out.println();
}*/
}
}