JAVA基础入门——运算符、结构语句

1.Java中的运算符

在程序中经常出现一些特殊符号,如+,-,*,=,>等。这下写特殊符号被称作运算符。运算符用于对数据进行算术运算,赋值和比较操作。在Java中,运算符可分别为算术运算符,赋值运算符,比较运算符,逻辑运算符和位运算符

1.1算数运算符

在数学运算中最常见的就是加减成熟,被称之为四则运算。Java中算术运算符就是用来处理四则运算的符号。Java中算数运算符就是用来处理四则运算的符号,这是最简单,最常用的运算符号。

运算符运算范例结果

+

-

+

-

*

/

%

++

--

正号

负号

加号

减号

取余

自增

自减

+3

-4

5+5

6-3

3*4

5/5

7%5

a=2;a++/++a

b=3;b--/--b

3

4

10

3

12

1

2

3

4

++/--

其中自增自减运算符要与变量一起使用。

情况1: 即与变量在一起,不与其他任何符号连用时 (单独使用),变量一定会+1或-1;

情况2:自增/自减运算与其他符号连用时需要考虑表达式的值。 ++a/a++/--a/a--整体看成表达式

 口诀:符号在前,先运算再赋值。符号在后,先赋值在运算

解析:符号在前时,变量先自增/自减,新值赋值给表达式。 符号在后时,先把变量的值赋值给表达式,然后变量再自增/自减

/:
        情况1:参与的类型都是整型时,做取整运算,即 商n余m, 结果为n
        情况2:只要有一个浮点数参与,就会做类似精确运算。

%:取余运算符号,也叫取模运算符号,做除法运算时,商n余m,结果为m.

        情况1:参与运算都是整数时,余数是精确值
         情况2: 有浮点数参与时,余数不一定是精确值。

1.2 赋值运算符

作用是将常量、变量或表达式的值赋给某一个变量。

=,+=,-=,/=,*=,%=,

1.3 关系运算符

用于对两个数值或变量进行比较,其结果是一个布尔值。

 >     <     >=     <=    !=   ==

1.4 逻辑运算符

&&(与):用于判断两个条件是否同时成立 ||(或):用于判断是否有条件成立。 !:用于条件的否定
逻辑运算符又称之为短路运算符:

对布尔类型的数据进行操作,用来判断条件是否成立,一般都用于分支结构中

“&&”与“&” &&表示短路与 对于“与”来说,要求所有的条件都判断,而如果使用“短路与”如果第一个条件为false,则后面的条件将不再判断。 “||”与“|” ||表示短路或 对于“或”来说,要求所有的条件都判断,而如果使用“短路或”如果第一个条件为true,则后面的条件将不再判断。

No.

条件1

条件2

结果

&&(与)

||(或)

1

true

true

true

true

2

true

false

false

true

3

false

true

false

true

4

false

false

false

false

1.5字符串拼接符号

+

当+前后,只要有一个是字符串类型,就做拼接操作, 拼接后的结果是字符串类型。


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

变量类型 变量= 条件表达式?值1:值2;
变量类型:需要与值1或值2的类型相同。而值1与值2的类型要么相同,要么就可以自动转换。

1.7 位运算符

No.

逻辑运算符

描述

1

&

按位与

2

|

按位或

3

^

异或(相同为0,不同为1

4

~

取反

5

<<

左移位

6

>>

右移位

7

>>>

无符号右移位

 

public class OperatorDemo15 {
	public static void main(String[] args) {
		int x = 3 ;
		// 3的二进制数据:00000000 00000000 00000000 00000011
		int y = 6 ;
		// 6的二进制数据:00000000 00000000 00000000 00000110
		System.out.println(x & y);
		// 与操作的结果:	00000000 00000000 00000000 00000010
		System.out.println(x | y);
		// 或操作的结果:	00000000 00000000 00000000 00000111
		System.out.println(x ^ y);
		// 异或操作结果:	00000000 00000000 00000000 00000101
	}
}

 

求出负数的反码
public class OperatorDemo16 {
	public static void main(String[] args) {
		int x = -3 ;	// -3的二进制数据:11111111 11111111 11111111 11111101
		System.out.println(x + "的反码是:" + ~x);
	}
}

右移操作
public class OperatorDemo18 {
	public static void main(String[] args) {
		int x = 3 ;	
		// 3的二进制数据:00000000 00000000 00000000 00000011
		int y = -3 ;
		// -3的二进制数据:11111111 11111111 11111111 11111101
		System.out.println(x + "右移2位之后的内容:" + (x >> 2));
		System.out.println(y + "右移2位之后的内容:" + (y >> 2));
	}
}

以上的右移操作属于带符号位的右移操作,在Java中也提供了无符号的右移操作符“>>>”,使用此操作将以“0”填充空出来的位。

1.7 运算符的优先级

优先级

运算符

结合性

1

()

括号运算符

由左至右

1

[]

方括号运算符

由左至右

2

!+(正号)、-(负号)

一元运算符

由右至左

2

~

位逻辑运算符

由右至左

2

++--

递增与递减运算符

由右至左

3

*/%

算术运算符

由左至右

4

+-

算术运算符

由左至右

5

<<>>

位左移、右移运算符

由左至右

6

>>=<<=

关系运算符

由左至右

7

==!=

关系运算符

由左至右

8

&(位运算符AND

位逻辑运算符

由左至右

9

^(位运算符号XOR

位逻辑运算符

由左至右

10

|(位运算符号OR

位逻辑运算符

由左至右

11

&&

逻辑运算符

由左至右

12

||

逻辑运算符

由左至右

13

?:

三目运算符

由右至左

14

=

赋值运算符

由右至左

2.结构语句

  程序的运行顺序:
  顺序结构:从程序开始,到程序结束
  分支结构:在顺序结构基础上,根据条件进行(成立于否)选择执行方向。
  循环结构:在顺序结构基础上,根据条件进行多次执行相同的或相似的代码

2.1 分支结构

2.1.1  if  语句

if语句里面会包含条件,后边跟一个语句或一组语句,仅当给定条件为真时才执行语句。

如果条件为false,那么if语句体内的语句将被完全忽略。

2.1.2 if...else语句

if (判断条件){         

语句主体1 ;     

}else{         

语句主体2;

 }

2.1.3  if...else if...else语句

2.1.4 switch 语句

要在许多的选择条件中找到并执行其中一个符合判断条件的语句时,除了可以使用if..else不断地判断之外,也可以使用另一种更方便的方式即多重选择——switch语句,

语法格式:

switch (表达式){             

             case 选择值1 :    语句主体 1 ;            [break];         

             case 选择值2 :    语句主体 2 ;            [break ];         

            …….             

            case 选择值n :    语句主体 n ;              [break] ;    

           default:          语句主体 ;     

}

break:有打断,毁掉,跳出,结束的含义

case后面选择性添加break;如果后面没有break会一直运行下去直到遇到break或default或全部执行完后续的所有分支。

2.2 循环结构

 

循环结构:重复执行相同或相似代码

循环三要素:

循环变量的声明,循环条件,循环变量的改变方向

break关键字:用在循环结构中时,表示结束/打断循环
continue关键字:用在循环结构中,表示结束当次循环体,继续下一次循环

2.2.1 while语句

 格式: 

             while(boolean表达式){
                 循环体:重复的或者是相似的代码
             }
             执行逻辑:当jvm执行到while关键字时,会执行boolean表达式,
                             如果表达式的值为true,就会执行循环体代码一次,然后会继续执行boolean表达式
                             如果表达式的值为false时,就会跳过循环执行后续代码。
            死循环中经常会使用break关键字

public class Study01{
	public static void main(String[] args){
		int n=0;
		int sum=0;//定义一个变量sum。存前n项的和
		while(n<100){
			n++;
			sum+=n;
		}
			System.out.println("sum:"+sum);

2.2.2 do...while语句

do{
               循环体
           }while(循环条件);
           执行逻辑:jvm先碰到do,然后执行一次循环体,再判断循环条件,
                           如果循环条件为true,会继续执行循环体,如果循环条件为false,会结束循环,执行后续代码。
         
          while和do-while的区别
          while 先执行循环条件,条件成立再执行循环体。
          do-while先执行循环体,再执行循环条件
          do-while一定会执行一次循环体。

          做一件事时,如果可以翻译成这样:
          当什么什么时,就做重复一件事,就可以使用while
          重复做一件事,知道什么什么时候结束。就可以使用do-while

public class Study01{
	public static void main(String[] args){
		int n=0;
		int sum=0;//定义一个变量sum。存前n项的和
		do{
			sum+=n;
			n++;
		}while(n<101);
			System.out.println("sum:"+sum);
一个球从100米高的地方向下落,每次反弹的距离是落下的距离的二分之一,求第五次下落后球总共行走的路程。
public class Study04{
	public static void main(String[] args){
		double h =100;
		double x =0;
		double s =0;
		int m =1;
		while(m<5){
			h/=2;
			s+=h*2;
			m++;
			
		}
		x=100+s;
		System.out.println("总路程为:"+x);
	}
}	

2.2.3 for循环语句

for 循环:经典循环结构
for(循环变量的声明;循环条件;循环变量的改变){
    //循环体
    }
执行逻辑:碰到for时,会只执行一次循环变量的声明,然后执行循环条件,
                如果条件成立执行循环体,然后再执行循环变量的改变,然后再执行循环条件,......,
                如果条件不成立,跳出循环,执行后续代码

随机生成一个100以内的整数 判断此整数是否是素数 ,素数:也是质数,就是只能被1和本身整除的数 1不是质数
public class ForDemo02{
	public static void main(String[] args){
		int a =(int)(Math.random()*101);
		boolean flag = false;//定义一个变量充当开关
		for (int i=2;i<Math.sqrt(a);i++ ){//开根号
			if(a%i==0){
				flag = true;
				break;
			}
		}
		//检查完毕后,才能判断这个数是不是素数。
		if (flag){
			System.out.println("不是素数");
		}else{
			System.out.println("是素数");
		}

2.2.4.foreach循环语句

foreach的语句格式: 
for(元素类型t 元素变量x : 遍历对象obj){ 
引用了x的java语句; 

foreach比for的好处和弊端 
好处:相对于for来说方便了对容器的遍历 
弊端:没有索引,不能操作元素中的元素

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。 
foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值