day03 Java语言基础(运算和结构)

 1.运算符          

            运算符的优先级(从高到低) 

优先级

描述

运算符

1

括号

()、[]

2

正负号

+、-

3

自增自减,非

++、--、!

4

乘除,取余

*、/、%

5

加减

+、-

6

移位运算

<<、>>、>>>

7

大小关系

>、>=、<、<=

8

相等关系

==、!=

9

按位与

&

10

按位异或

^

11

按位或

|

12

逻辑与

&&

13

逻辑或

||

14

条件运算

?:

15

赋值运算

=、+=、-=、*=、/=、%=

16

位赋值运算

&=、|=、<<=、>>=、>>>=

  •  算术运算符                         

     

            整数相除只能得到整数,要想得到小数,可以把要操作的数据中的任意一个数据变为浮点型  例如3/4的结果为0,而3*1.0/4的结果是0.75 

  •   赋值运算符

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

              =为基本的赋值运算符,其他的为扩展的赋值运算符

              eg     short s=1, s = s+1; (有问题,有可能损失精度) 

                       short s=1, s+=1;(没问题,隐含了一个强制类型转换s=(short)(s+1) ) 

           

  •  比较运算符

           

               比较运算符“==”不能误写成“=”  

               比较运算符的结果都是boolean型,要么是true,要么是false。 

          

  •  逻辑运算符   

      

              逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6        

               &: falsefalse

               |:  truetrue

               ^:  相同false,不同true  

              “&”和“&&”的区别:

                      单&时,左边无论真假,右边都进行运算;

                      双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

              “|”和“||”的区别同理,双或时,左边为真,右边不参与运算。

               异或( ^ )与或( | )的不同之处是:当左右都为true时,结果为false。

  •  位运算符

位运算符

运算符

运算

范例

<<

左移

3 << 2 = 12 --> 3*2*2=12

>>

右移

3 >> 1 = 1 --> 3/2=1

>>>

无符号右移

3 >>> 1 = 1 --> 3/2=1

&

与运算

6 & 3 = 2

|

或运算

6 | 3 = 7

^

异或运算

6 ^ 3 = 5

~

反码

~6 = -7

位运算符的细节

<<

空位补0,被移除的高位丢弃。

>>

被移位的二进制最高位是0,右移后,空缺位补0;

最高位是1,最高位补1。

>>>

被移位二进制最高位无论是0或者是1,空缺位都用0补。

&

任何二进制位和0进行&运算,结果是0;

和1进行&运算结果是原值。

|

任何二进制位和0进行 | 运算,结果是原值;

和1进行 | 运算结果是1。

^

任何相同二进制位进行 ^ 运算,结果是0;

不相同二进制位 ^ 运算结果是1。

              位运算是直接对二进制进行运算。 

               一个数据被另一个数据异或两次,值不变   eg:  int a=10,b=20; 

                a^b^b   结果是10 

                a^b^a   结果是20            

  •  三目运算符

               (关系表达式)?表达式1:表达式2;

               关系表达式的结果是boolean类型

                如果条件为true,运算后的结果是表达式1;

                如果条件为false,运算后的结果是表达式2;

                eg:获取三个整数中的最大值

                     (a>b)?((a>c)?a:c):((b>c)?b:c)

 

2.流程控制语句  

  •   顺序结构

       是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程 序 中大多数的代码都是这样执行的。 总的来说:写在前面的先执行,写在后面的后

  •  选择结构(分支结构)

        选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。

       Java语言提供了两种选择结构语句

              1  if语句 

                

                

                

                

 例子:获取三个数据中的最大值

class IfTest4 {
	public static void main(String[] args) {
		int a = 10;
		int b = 30;
		int c = 20;
		
		//三元实现
		//int temp = (a>b)? a: b;
		//int max = (temp>c)? temp: c;
		//System.out.println("max:"+max);
		//System.out.println("--------");
		
		//用if语句实现
		int max;
		if(a > b) {
			if(a > c) {
				max = a;
			}else {
				max = c;
			}
		}else {
			if(b > c) {
				max = b;
			}else {
				max = c;
			}
		}
		System.out.println("max:"+max);
	}
}

       2  switch 语句 

                      

                      

                       

                                        

  • 循环结构

                       

            1  for循环语句

                       

                       

                例子:统计1000以内的水仙花数共有多少个                

/*
	需求:统计1000以内”水仙花数”共有多少个
	
	分析:
		A:首先必须知道什么是水仙花数
			所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。
			举例:153就是一个水仙花数。
			153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
*/
class ForDemo8 {
	public static void main(String[] args) {
		//定义统计变量,初始化值是0
		int count = 0;
		
		//三位数告诉了我们范围,用for循环就可以搞定
		for(int x=100; x<1000; x++) {
			//获取每一个三位数的个,十,百的数据
			int ge = x%10;
			int shi = x/10%10;
			int bai = x/10/10%10;
			
			//按照要求进行判断
			if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {
				//如果满足要求就计数。
				count++;
			}
		}
		
		System.out.println("水仙花数共有"+count+"个");
	}
}

 

             2  while循环语句 

                          

                          

                例子:折纸游戏       

/*
	我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
	请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
*/

class WhileDemo5 {
	public static void main(String[] args) {
		//定义一个统计变量,默认值是0
		int count = 0;
		
		//最高山峰是珠穆朗玛峰:8848m这是最终的厚度
		//我现在有一张足够大的纸张,厚度为:0.01m这是初始厚度
		//为了简单,我把0.01变成1,同理8848就变成了884800
		int end = 884800;
		int start = 1;
		
		while(start<end) {
			//只要每次变化的厚度没有超过珠穆朗玛峰的高度,就折叠,统计变量++
			count++;
			
			//折叠一次有什么变化呢?就是厚度是以前的2倍。
			start *= 2;
			
			System.out.println("第"+count+"次厚度是"+start);
		}
		
		//输出统计变量。
		System.out.println("要叠"+count+"次");
	}
}

                  3   do…while循环语句

                                   

                                   

                      例子:九九乘法表                     

/*
	需求:在控制台输出九九乘法表。
	
	首先我们写出九九乘法表:
		1*1=1
		1*2=2	2*2=4
		1*3=3	2*3=6	3*3=9
		1*4=4	2*4=8	3*4=12	4*4=16
		...
		1*9=9	2*9=18	3*9=27	...
		
	我们先把这个九九乘法表看出是这样的一个形状:
		*
		**
		***
		****
		*****
		******
		*******
		********
		*********
		
	注意:
		'\x' x表示任意,这种做法叫转移字符。
		
		'\t'	tab键的位置
		'\r'	回车
		'\n'	换行
*/
class ForForDemo3 {
	public static void main(String[] args) {
		for(int x=0; x<9; x++) {
			for(int y=0; y<=x; y++) {
				System.out.print("*");
			}
			System.out.println();
		}
		System.out.println("--------------");
		//为了使用数据,我们从1开始
		for(int x=1; x<=9; x++) {
			for(int y=1; y<=x; y++) {
				System.out.print(y+"*"+x+"="+y*x+"\t");
			}
			System.out.println();
		}
	}
}

 

                      4  跳转控制语句

                                          

                                         

                                         

                                         

 

         代码示例 :break,continue,return 之间的区别

/*
  return:返回
*/
public class ReturnTest {

	public static void main(String[] args) {
		for(int x=0; x<10; x++) {
			if(x == 2) {
				System.out.print("退出,");
				//break;//0,1,退出,over
				//continue;//0,1,退出,3,4,5,6,7,8,9,over
				return;// 0,1,退出,
			}
			
			System.out.print(x+",");
		}
		
		System.out.print("over");
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值