逻辑运算符,位运算符

逻辑运算符" & | " 的应用:
&:与。两边的表达式结果都是true时,则为true,否则为false;
| :或。只要有一个为true则结果为true,否则结果为false。
! :非。!true=false,!false=true。
^:异或。两边相同时为false,两边不同时为true。
&&:短路与。如果左边为false,则右边不再计算
|| :短路或。如果左边为true,则右边不再计算

位运算:
前提条件:需要将数据转为二进制数据才可以运算。
十进制转二进制:不断除以2取余数的过程。
逻辑位运算:
& | ^
移位运算:
左移:<< ,被移位的数字乘以2的移动次幂。
具体方法:首先要把数字转换成二进制,填完整,比如11<<2,11的二进制为00001011(一个字节有8位(bit))左移两位即在这里插入图片描述
右移:>> ,被移位的数字除以2的移动次幂,最高位补位取决于被移位的数是正数还是负数,正数补0,负数补1。
无符号右移:>>> ,被移位的数字除以2的移动次幂,最高位补位与被移位的数是正数还是负数没有关系,都补0。
在这里插入图片描述

判断输入的数是否为水仙花数:
注意点:1.从控制台输入数字需要引用Scanner,在程序开头输入如下代码:import java.util.*,*为通配符,这里也可以写的具体一点写成Scanner。

import java.util.*;
class Demo12  {
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		System.out.println("请输入要进行比较的数值:");
//		int num1=input.nextInt();
//		int num2=input.nextInt();
//		int num3=input.nextInt();
//		int num4=input.nextInt();
//		
//		int max=num1>num2?(num1>num3?(num1>num4?num1:num4):(num3>num4?num3:num4)):(num2>num3?(num2>num4?num2:num4):(num3>num4?num3:num4));
//			System.out.println("最大的值为:"+max);

		//判断输入的数是否为水仙花数
		//  从控制台获取数据
		int number=input.nextInt();
		//  拆分成个位十位和百位三个数字
		int a,b,c,sum;
		a=number/100;
		b=number%100/10;
		c=number%10;
		//  计算幂结果
		sum=a*a*a+b*b*b+c*c*c;
		//比较结果和原数值是否相同
		if(sum==number){
			System.out.println("该值为水仙花数");
		}else{
			System.out.println("该值不是水仙花数");
		}
		System.out.println("over");
	}
}

案例2:15s,100米进入决赛,根据性别进行分组

//15s,100米进入决赛,根据性别进行分组
import java.util.*;
public class Demo13{
	public static void main(String[] args){
		//引入Scanner函数
		Scanner input=new Scanner(System.in);
		System.out.print("请输入比赛用时:");
		//从控制台获取时间变量
		int time=input.nextInt();
		if(time<=15){
			System.out.println("恭喜你进入决赛!");
			System.out.println(); //输出空行,美观
			System.out.println("请输入性别,1代表男生,2代表女生:");
		//从控制台获取性别变量
			int sex=input.nextInt();
			if(sex==1){
				System.out.println("恭喜你被分到男生组!");
			}else if(sex==2){
				System.out.println("恭喜你被分到女生组");
			}else{
				System.out.println("对不起,你输入的性别有误!");
			}
		}else{
			System.out.println("很遗憾你没有进入决赛,请再接再厉!");
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值