位运算-流程控制

知识点:

  1. 位运算
    • &:按位与,两个数都是1,结果才是1.

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TeUj6vnc-1600866384176)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922220220734.png)]

    • |:按位或,两个操作数一个是1,结果就是1.

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XBO8Co54-1600866384178)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922220419606.png)]

    • ^ : 按位异或,两个 操作数相同,结果为0;两个 操作数不同,结果为1;

      ​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-urSPi6K1-1600866384179)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922220600250.png)]

    • <<:左移,右侧空位补0,高位移出

      • 正数

        ​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DgDSGDkI-1600866384181)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922220808411.png)]

      • 负数

        ​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KyVKS6vg-1600866384182)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922220940857.png)]

      注意:左移操作,在不越界的情况下,x << n等同于 x 乘以 2 的 n 次幂
    • :右移,左侧空位补最高位,即符号位。
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kfl9wwBI-1600866384183)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922221422049.png)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iB5bryqv-1600866384184)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922221422043.png)]

      注意:右移操作,在不越界的情况下, x >> n 等同于 x 除以 2 的 n 次幂
    • :无符号位移,高位补0

  2. 三目运算符: ‘条件’ ?‘表达式1’ : ‘表达式2’;条件为true时运行表达式1,条件为false时运行表达式2.

    ​ 条件 的结果是布尔类型,只能是 true or false
    ​ 如果 条件 的结果是 true 则返回 表达式1
    ​ 如果 条件 的结果是 false 则返回 表达式2

  3. 三大流程控制:顺序结构,选择结构,循环结构。

    ​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N9GWeX56-1600866384184)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20200922222628860.png)]

  4. Scanner

    ​ 创建 Scanner 对象,用于获取控制台输入的流

Scanner input = new Scanner(System.in);

	System.out.println("请输入一个字符串:");

​		hasNext() 判断还有没有输入的值,如果有返回 true

```java
boolean hasNext = input.hasNext();
		
		if (hasNext) {
			// next() 获取输入到的信息,空格和回车会中断获取
//			String next = input.next();
			
			// nextBoolean() 将获取到的信息,转换成 boolean 类型
//			boolean b = input.nextBoolean();
			
			//nextInt()将获取到的信息,装换为int型(nextFloat同样)	
//			int b = input.nextInt();
			

			//获取当前行的输入
			String next = input.nextLine();
			System.out.println("你输入的是:" + next);
		}

​ close 为关闭Scanner对象

input.close();
  1. 单分支

    ​ 如果if 里的代码只有一句,可以不写{},但是不推荐这么写

  2. 双分支

    ​ 如果条件为true,执行 代码块1,否则执行 代码块2 if (条件){ // 代码块 1 } else{ // 代码块 2 }

    	Scanner input = new Scanner(System.in);
    		System.out.println("你要找的对象性别:1. 男性; 2. 女性");
    		int gender = input.nextInt();
    		if (gender == 1) {
    			System.out.println("你是个女生!");
    		} else {
    			System.out.println("你是个爷们儿!");
    		}
    
  3. switch
    switch(表达式){
    		  		case 表达式1:
    		           // 代码1
    		  			break;
    		  		case 表达式2:
    		           // 代码2
    		  			break;
    		       ...
    		       default:
    		       	// default代码
    		       	break;
    		  }
    
  4. while

    计算1~100的和

    int sum = 0; 
    		int num = 1;
    		while(num < 101) {
    			sum += num++;
    		}
    		System.out.println("1 ~ 100 的和是:" + sum);
    

    while条件为true是运行,equals:循环输入,直到输入’ f '为止

    Scanner input = new Scanner(System.in);
    		System.out.println("输入一个字符串:");
    		String str = "";
    		boolean flag = true;
    		while(flag) {
    			String next = input.next();
    			if ("f".equals(next)) {
    				flag = false;
    			}else {
    				str += next;
    			}
    		}
    		System.out.println(str);
    
  5. do-while:

    ​ 先执行循环体,在判断执行条件。至少执行一次,

    ​ 计算1~100

    int sum = 0;
    		int num = 1;
    		do {
    			sum += num;
    			num ++;
    		}while(num <= 100);
    		System.out.println(sum);
    
  6. for: for(表达式1; 表达式2; 表达式3){ // 循环体 }
    • **1.**先执行表达式1 2. 执行表达式2,表达式2结果是一个boolean类型的 3. 如果表达式2结果是true 执行循环体 4. 如果表达式2,结果是false 循环结束 5. 循环体执行完毕后,执行表达式3 6. 表达式3 执行完,执行第2步。

    • 表达式1 只执行一次,所以一般用来初始化数据 表达式2 是循环条件 表达式3 一般是修改循环变量

      计算1~100

      		int sum = 0;
      		int num = 1;
      		for (;num < 10;num++)
      			sum += num;
      	     System.out.println(sum);
      
  7. 跳出循环的三种方式
    • break:在switch中,当执行到break,整个switch都执行局结束 在循环中,执行到 break,循环结束
    • continue 结束本次循环,进行下次循环
    • retrun 表示返回,return 后边什么都没有表示结束当前方法,返回到方法的调用出如果是main方法表示整个程序结束运行
  8. 循环嵌套:循环之间可以相互嵌套

    ​ 循环嵌套的时候可以给循环命名命名之后可以通过控制语句,如 continue、break来控制循环跳出操作

    方法如下:
    outer: for(){
    	 	inner: for(){
    	 		continue outer;
    	 		break outer;
    	 		}
       }
    
    continue [循环名称];

    ​ 循环名称不写,默认是当前循环,如果写上循环名称,表示操作指定循环名称循环
    ​ eg: continue outer; 表示结束 outer 的本次循环

称不写,默认是当前循环,如果写上循环名称,表示操作指定循环名称循环
​ eg: continue outer; 表示结束 outer 的本次循环

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值