一、java中的运算符
1.赋值运算符 =
2.算数运算符【+ – * / %(求余) ++(自动加1) –(自动减1)】
3.比较运算符【> < >= <= == !=】
4.逻辑运算符【|| && (位运算符 | $ ! ~ ^ >> <<)】
(位运算符 | $ ! ~ ^ >> <<)
位运算符需要将数据转换成2进制【00101010】数据进行运算
掌握10进制转2进制:短除法[笨] 8421转化法
1024 512 256 128 64 32 16 8 4 2 1
7=4+2+1—— 0 0 0 0 0 0 0 0 1 1 1 —00000111
13=8+4+1—— 0 0 0 0 0 0 0 1 1 0 1 —00001101
负数的2进制:实质上补码表示
正数的补码是本身
负数的补码是反码+1
反码的表示方法是:
正数的反码是其本身【原码】
负数的反码是在其原码的基础上,符号位不变,其余各个位取反
负数的原码就是把它正数的原码第一位变为1其余位不变
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余为表示值
例如: -7的2进制– 7的[00000111]– [-7的原码10000111]– [-7的反码11111000]– [-7d的补码11111001]
例如:
public class YunSuanFu{
public static void main(String args[]){
//算术运算符【+ - * / %{求余} ++{自动加1} --{自动减1}】
//++(自动加1)
int num1=10;
//打印结果为10原因是在后面++是先用后加
System.out.println(",++"+ (num1++));//10
System.out.println(num1);//11
//++在前面时表示先后用这里是12的结果因为上面num1已经加了1
System.out.println("++,"+ (++num1));//12
System.out.println(num1);//12
// --(自动减1)
int num2=10;
//打印结果为10原因是在后面--是先用后加
System.out.println(",--"+ (num2--));//10
System.out.println(num2);//9
//--在前面时表示先后用这里是8的结果因为上面num1已经减了1
System.out.println("--,"+ (--num2));//8
System.out.println(num2);//8
//比较运算符 【> < >= <= == !=】 返回的结果是Boolean类型
int a=10;
int b=15;
System.out.println("(a>b):"+ (a>b));//false
System.out.println("(a<b):"+ (a<b));//true
System.out.println("(a!=b):"+ (a!=b));//true
System.out.println("(a==b):"+ (a==b));//false
//逻辑运算符【|| && !】返回的结果是Boolean类型
int int1=10;
int int2=15;
// 或||有一个满足就是true
System.out.println("(int1>int2 || int1>9):"+ (int1>int2 || int1>9));//true
// 与&&有一个不满足则false
System.out.println("(int1>int2 && int1>9):"+ (int1>int2&&a>9));//false
System.out.println("(int1<int2 && int1>=10):"+ (int1<int2&&int1>9));//true
//反!
System.out.println("(!int1>int2):"+ !(int1>int2));//true
//【位运算符 | & ! ~ ^ >> << 】
byte byte1=7;
byte byte2=-7;
/*
|按位或 相同位只要一个为1即为1【7 | -7】 【01--1 10--1 11-1】
7的补码:00000111
-7的补码:11111001
两个按位或:11111111转为10进制就是-1
*/
System.out.println(byte1 | byte2);//-1
/*
&按位与 相同1为1,不同为0。【7 & -7】【11--1 00--1 01-0 10-0】
7的补码:00000111
-7的补码:11111001
两个按位与:00000001转为10进制就是1
*/
System.out.println(byte1 & byte2);//1
/*
^ 按位异或 相同位不同则为1,相同则为0。【7 ^ -7】【01--1 10--1 11--0 00--0】
7的补码:00000111
-7的补码:11111001
两个按位与:11111110转为10进制就是-2
*/
System.out.println(byte1 ^ byte2);//-2
//三元运算符【(判断)? 数据值1:数据值2】
/*
先判断,判断结果为true,整运算表达式的结果取数据值1
判断结果为false,整运算表达式的结果取数据值2
*/
System.out.println((int1>int2) ? "True":"False");//false
}
}
二、java中的语句
1.顺序结构 【写好的代码从上往下一行一行的逐个执行】
2.选择结构【if语句 switch语句】
例如:if语句public class IfYuJu{ public static void main(String args[]){ /* if(判断){java代码}结构 执行过程:先判断为true,执行Java代码 为false,不执行 */ int a=10; if(a>=10){ System.out.println("执行的代码"); } /* if(判断1){ 代码1; }else{ 代码2; } 执行过程:先判断1为true时,执行代码1 为false时,执行代码2 */ if(a<10){ System.out.println("执行的代码1"); }else{ System.out.println("执行的代码2"); } /* if(判断1){ 代码1; }else if(判断2){ 代码2; }else{ 代码3; } 执行过程:先判断1为true则执行代码1 为false到判断2为true,则执行代码2 为false执行最后的代码 */ int chengji=62; if(chengji>=85){ System.out.println("优秀"); }else if(chengji>=75){ System.out.println("良好"); }else if(chengji>=60){ System.out.println("及格"); }else if(chengji>0){ System.out.println("不及格"); }else{ System.out.println("成绩输入有误"); } /* if(判断1){ if(判断2){ 代码1; }else{ 代码2; } }else{ if(判断2){ 代码3; }else{ 代码4; } } 执行过程:先判断1位true时,判断2为true则执行代码1 为false到判断3为true则执行代码2 当判断3位false则到最后的代码3 */ if(chengji>=60){ if(chengji>=85){ System.out.println("优秀"); }else if(chengji>=75){ System.out.println("良好"); }else{ System.out.println("及格"); } }else{ if(chengji>=0){ System.out.println("不及格"); }else{ System.out.println("输入成绩有误"); } } } }
例如switch语句:
switch(匹配值){
case 常量值1: java代码1;[break;]
case 常量值2: java代码2;[break;]
case 常量值3: java代码3;[break;]
……
case 常量值n: java代码n;[break;]
default:java代码;[break;]
}
执行过程:先执行表达式,表达式的结果与case后面的常量值匹配,
如果匹配结果相等,执行对应case后面的java代码,
如果有break就结束switch语句的执行。
如果没有break,那么执行下一个case对应的java代码,直到有break,结束
表达式的结果与所有case后面的常量值都不匹配,那么执行default后面的代码。
注意1:表达式的类型可以是 byte、short、char、int、long、String[jdk8.0],枚举
注意2:有没有break,有break就结束执行,
没有break执行下一个case对应的java代码,直到有break停止。public class SwitchYuJu{ public static void main(String args[]){ //switch语句 /* switch(表达式){ case 常量值1: java代码1;[break;] case 常量值2: java代码2;[break;] case 常量值3: java代码3;[break;] ...... case 常量值n: java代码n;[break;] default:java代码;[break;] } 执行过程:先执行表达式,表达式的结果与case后面的常量值匹配, 如果匹配结果相等,执行对应case后面的java代码, 如果有break就结束switch语句的执行。 如果没有break,那么执行下一个case对应的java代码,直到有break,结束 表达式的结果与所有case后面的常量值都不匹配,那么执行default后面的代码 注意1:表达式的类型可以是 byte、short、char、int、long、String[jdk8.0],枚举 注意2:有没有break,有break就结束执行, 没有break执行下一个case对应的java代码,直到有break停止。 */ int num1=2; int num2=4; char op='+'; switch(op){ case '+':System.out.println(num1+"+"+num2+"="+(num1+num2)); case '-':System.out.println(num1+"-"+num2+"="+(num1-num2));break; case '*':System.out.println(num1+"*"+num2+"="+(num1*num2)); case '/':System.out.println(num1+"/"+num2+"="+(num1/num2)); default:System.out.println("运算有误!"); } } }
3.循环结构–重复执行【for循环、while循环、do….while循环】
例如for循环:
结构:for(初始值;判断条件;递增(递减)循环){java执行代码};
初始值是循环的开始。
判断条件:是循环的结束。
递增(递减)循环:是循环的执行次数。
执行过程:
先初始值,再判断条件,为true则执行Java代码,在递增或递减,继续循环,
直到 判 断条件为false则循环结束。public class forDemo{ public static void main(String args[]){ //for循环 /* 结构:for(初始值;判断条件;递增(递减)循环){java执行代码}; 初始值是循环的开始。 判断条件:是循环的结束。 递增(递减)循环:是循环的执行次数。 执行过程: 先初始值,再判断条件,为true则执行Java代码,在递增或递减, 继续循环,直到判断条件为false则循环结束 */ //递增,输出1-5 for(int i=1;i<6;i++){ System.out.println("递增的"+i); } //递减,输出5-1 for(int j=5;j>=1;j--){ System.out.println("递减的"+j); } } }
例如while循环:
结构:while(判断条件){
java执行代码;
递增/减;
}
注意while循环没有初始值以及递增/减,初始值一般放在循环体外,递增/减一般放在循环体内。
while循环不知道循环的次数
执行过程:先执行判断条件,为true再执行代码,再递增/减,
继续判断条件·····继续循环, 直到判断条件为false时循环结束。public class whileDemo{ public static void main(String args[]){ //while循环 /* 结构:while(判断条件){ java执行代码; 递增/减; } 注意while循环没有初始值以及递增/减,初始值一般放在循环体 外,递增/减一般放在循环体内。 while循环不知道循环的次数 执行过程:先执行判断条件,为true再执行代码,再递增/减, 继续判断条件·····继续循环 直到判断条件为false时循环结束 */ //递增循环1-5 int i=1; while(i<6){ System.out.println("递增--"+i); i++; } //递减循环5-1 int j=5; while(j>=1){ System.out.println("递减--"+j); j--; } } }
例如do…while循环:
结构:do{
执行代码;
}while(判断条件);
当知道执行循环次数时,一般将初始值放在循环体外,递增/减次数放 在循环体内。
执行过程:先初始值,再执行判断条件为true时,执行Java代码,再递增/减,一直循环做
在之前的事情,直到判断条件为false时结束。
注意:1.do··while也不知道循环次数。
2.当判断条件为false时,会多输出一次代码。public class DoWhileDemo{ public static void main(String args[]){ //do··while循环 /* 结构:do{ 执行代码; }while(判断条件); 当知道执行循环次数时,一般将初始值放在循环体外,递增/减次数放 在循环体内。 执行过程:先初始值,再执行判断条件为true时,执行Java代码,再递增/ 减,一直循环做在之前的事情,直到判断条件为false时结束。 注意:1.do··while也不知道循环次数。 2.当判断条件为false时,会多输出一次代码。 */ //递增输出1-5 //定义一个变量存储初始值 int i=1; do{ System.out.println("递增--"+i); i++; }while(i<6); //递减输出5-1 //定义一个变量存储初始值 int j=5; do{ System.out.println("递减--"+j); j--; }while(j>0); } }
三、比较这个三个循环的区别?
1.for循环与while和do··while循环的区别
for循环有定义循环增量/减量和定义了初始值,推荐明确循环的次数使用。
while和do··while循环,没有定义循环增强/减量,往往都是自己定义的。推荐不明确循环次数时使用。
例如:test1.javapublic class test1{ public static void main(String args[]){ //for循环与while和do··while循环之间的区别 /* for循环有定义循环增量/减量具体位置, while和do{}while()循环,没有定义循环增量/减量具体位置,往往都是自 己定义在循环体中的最后一句 for循环需要明确循环次数 while和do{}while()循环不需要考虑循环次数 */ //for循环 //知道即将循环的次数为5次 for(int i=1;i<6;i++){ System.out.println("循环第"+i+"次"); }; //while循环和do··while循环 //需要自己定义初始值 //不知道即将循环的次数。这里我让代码执行一次之后结束循环。 boolean bloo=true; while(bloo){ System.out.println("执行代码"); bloo=false; } } }
2.while和do{ }while();循环的区别
while循环先执行判断条件后执行,do()while{};循环先执行代码后判断条件
初始判断条件为false时,do{}while();比while循环多执行一次循环体
例如:test2.javapublic class test2{ public static void main(String args[]){ //与while和do{}while();循环之间的区别 /* while循环先判断后执行,do{}while()循环先执行后判断 初始判断条件的结果为false的时候,do{}while()循环会比while多执 */ //定义初始值为false Boolean bool=false; //while循环 while(bool){ System.out.println("while的执行代码"); } //do{}while();循环 do{ System.out.println("do{}while();循环代码"); }while(bool); } }
四、 break语句与continue语句的用法和区别
1.break语句–循环汇总表示中断循环的执行
如果循环是嵌套的,namebrake出现在那一层就终端那一层的循环。
例如:public class BreakDemo{ public static void main(String args[]){ //break语句 //break语句---循环中就表示中断循环的执行 //如果循环是嵌套的,那么break语句出现在那一层就中断那一次的循环。 //定义一个字符 String op="*"; int num1=2; int num2=3; switch(op){ case"+":System.out.println(num1+"+"+num2+"="+(num1+num2));break; case"-":System.out.println(num1+"-"+num2+"="+(num1-num2));break; case"*":System.out.println(num1+"*"+num2+"="+(num1*num2));break; case"/":System.out.println(num1+"/"+num2+"="+(num1/num2));break; } //当内部循环的值j为3时,内部循环从j=3结束但是不影响外部循环的执行 for(int i=1;i<6;i++){ for(int j=1;j<6;j++){ if(j==3){ break; } System.out.println("i="+i+"___"+"j="+j); } } } }
2.continue语句–往往出现在循环中表示结束当前循环,继续下一次循环执行
例如:public class ContinueDemo{ public static void main(String args[]){ //continue语句 //往往出现在循环中表示结束当前循环,继续下一次循环执行 /*所以continue出现在那一层只结束当前满足的条件的执行代码,之后继 续。不影响其他层的循环执行*/ //1.这里我们循环套嵌的第二层循环上当j=3时,结束j=3的循环之后继续第 //二层循环 //可以看到第二层循环j=2时的执行代码没有输出 for(int i=1;i<4;i++){ for(int j=1;j<4;j++){ if(j==2){ continue; } System.out.println("i="+i+"___"+"j="+j); } } //2.这里我们循环套嵌的第一层循环上当=3时,结束i=2的循环之后继续 for(int k=1;k<4;k++){ if(k==2){ continue; } for(int q=1;q<4;q++){ System.out.println("k="+k+"___"+"q="+q); } } } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79848.html