(二)java从零开始

来源:互联网 发布:网络犯罪的客观原因有 编辑:程序博客网 时间:2024/06/06 03:30

算术运算符

+的含义  正号,加法,字符串拼接符

/:取商

%:取余

在java中,如果两个整数运算,结果也是整数,如果想要结果为小数,那么在除数或者被除数之后乘以1.0f,转换为float(!!不是结果乘以1.0f)

标准格式如下

int a = 1;int b = 2;System.out.println(a/(b*1.0f));
a++和++a

int a=3;int b=++a;System.out.println("a="+a+"b="+b);

a=4,b=4

int a=3;int b=a++;System.out.println("a="+a+"b="+b);
a=4,b=3

++a是先自身+1再参与运算,a++是先参与运算再+1,单独使用,结果相同

int a = 4;int b = (a++) + (++a) + (a * 10);System.out.println(b);
a=4,a++为4,此时a=5。

++a为6,此时a=6。

a*10=60.60+4+6=70.

赋值运算符及隐式转换

+=,-=,*=,/=都包含了一个隐式转换

a+=b;

a=(a的数据类型)(a+b),隐含了数据类型的强制转换

==和=

==:判断是否等于,是一个比较运算符

=:是一个赋值运算符

单与和双与的区别

通常结果都是一样的

&左边无论什么,都要运行右边。

&&左边为false,右边不运行。

单或和双或也类似。

||左边为true,右边不运行。

^异或:相同false,不同true,异或和或的结果一样,除了左右两边都为true,此时异或为false,或为true。

当一个数异或同一个数两次,最终的结果是他本身。一般异或分解为二进制,根据规则异或然后进行换算。

逻辑运算符

作为连接符。 2<x<5在java中不成立,应该x<2&&x>5;

位运算符:对整数的补码进行字节操作(二进制进行理解)

<<:将一个数左移几位,相当于乘以2的几次房,最高位直接被移除,右边直接补0

>>:将一个数右移几位,相当于除以2的几次房,最高位是什么就补什么

位运算是在原数基础上进行操作的,但是不对源数据进行改变,而是将改变后的结果返回

int a =4;int b=a<<2;System.out.println("a="+a+",b="+b);
a=4,b=16

三目运算符(三元运算符)

a>b?a:b;(true返回a,false返回b)

三个值进行三目运算

int a=3,b=4,c=5,max;max=(max= a>=b?a:b)>c?max:c;
键盘录入

1.导包。 import java.util.Scanner;

2.新建。  Scanner sc =new Scanner(System.in);

3.录入。  int a =sc.nextint();

              String  line =sc.nextline();

               …………

流程控制结构:

顺序结构:按顺序执行的代码

选择顺序:if,switch,也叫做分支结构。根据不同结果运行不同程序。

循环结构:do,while,do。。。while语句,执行循环。

if后面括号里的值只能是true或者false。if语句默认会控制一条语句,不建议省略大括号。

三目运算符和if语句第二种格式一般是可以互相转换的。但当控制语句是一条输出语句的时候,三目运算符就不能实现了,因为运算符必须要有一个结果返回。比如a>b?sysout:sysout就是不成立的

三目运算符可以做的,if语句都可以做。反之不成立

if选择结构的结构有两种。先校验再判断和先判断再校验。先校验再判断更保险,免得忘。

相比于if语句,switch语句对常量值匹配的效率高。

关于switch语句的注意事项

1⃣️case后面的值只能是常量,不能是变量

2⃣️在结构中,default的位置是可变的

3⃣️break可以省略,但是一般不省略,因为break没有了,那么就会一直执行下去,直到遇到break或者执行完所有的case后的语句。

4⃣️default也是可以省略的

switch后括号内的内容,取值可以为byte,short,int,long,char,String(JDK1.7)

switch (month) {case 3:case 4:case 5:System.out.println("你输入的季节是春季");break;case 6:case 7:case 8:System.out.println("你输入的季节是夏季");break;case 9:case 10:case 11:System.out.println("你输入的季节是秋季");break;case 12:case 1:case 2:System.out.println("你输入的季节是冬季");break;}

多个不同情况下输出相同的内容,通过省略break来实现。

if和switch使用的场景

if:true和false,针对一个范围的判断。

switch:针对常量值的。

循环结构:通过一个判断条件作为依据反复执行某一段代码,在合适的时候结束循环。

循环结构:

初始化语句(初始化变量)+判断条件(判断是否有必要继续执行,一般为初始化的那个变量)+循环体语句+控制条件语句(变量变化的规律i++等)

for循环注意事项:

默认只能控制一条语句

死循环结构

while(true){

}

for(;;){

}

循环结构:

for语句:已知范围之内的循环

while:更适用于未知情况

do。。。while适用于需要至少执行一次的循环

for语句释放变量更快,while语句要等程序执行完毕才可以释放变量,但缺点是拿不到变量的值,无法输出次数,所以求未知数一般用while。也不是无法使用for,但是变量定义要放在循环外,int i;for(;i<100;i++)

do...while至少执行一次,不管对不对

int y = 3;do {System.out.println("6666");y++;} while (y < 3);
是要执行一次的

最常用的循环嵌套,两个for嵌套打印星星图,乘法表等等

\t:代表制表符

跳转控制语句

break:中断 switch语句和循环语句中使用。离开场景没有任何意义。不能再语句外面使用。

continue:继续 跳出本次循环

return:返回

下面一段小代码进行测试

for (int i = 1; i <= 5; i++) {if (i == 4) {continue;// break;}System.out.println(i);}
continue输出结果为1 2 3 5

break输出为 1 2 3

return直接结束整个方法,break结束整个循环。

public static void main(String[] args) {// TODO Auto-generated method stubfor (int i = 1; i <= 5; i++) {if (i == 4) {return;//break;}System.out.println(i);}System.out.println("Over");}
break会输出Over,return不会输出Over,因为此时程序的执行权已经交给了上层调用者