从零开始学java(13) --- 运算符和条件结构

Day3

今天主要了解一些运算符和条件结构

1.运算符

1.自增自减运算符:

++(为变量自身加1),-- (为变量自身减1)

 参与运算:
 ++在后面,先将变量进行运算,之后再自增
 ++在前面,先将变量自增,之后再运算
 如:
 a=5;
 b=a++//b=5
 c=++a;//c=6

2.比较运算符:(针对数字)

  >   <   ==(等于),>=,<=,!=
  比较的结果:  boolean类型

3.逻辑运算符:

&&:与,参与运算的数据类型都是boolean,当两个数据都是true,则运算结果就是true。

||:或,参与运算的数据类型都是boolean,只要有一个数据是true,结果就是true。

!:非,参与运算的是一个数据,类型是boolean,如果数据是true,结果是false,如果数据是false,结果是true。

注:短路现象:
&&:从左向右计算,只要遇到一个参与运算的数据是false,则不会继续运算其他的数据,结果是fasle
||:从左向右计算,只要遇到一个参与运算的数据是true,则不会继续运算其他的数据,结果是true
如:

     int a=5,b=6boolean c=a>b&&a++<b;
     System.out.println(a);
     //此时输出结果a还是5,a++运算被跳过了

4.三元运算符:

表达式1?表达式2:表达式3
整个运算的结果取决于表达式1的结果(boolean),如果表达式1true,则整个运算的结果是表达式2,否则就是表达式3

System.out.print(4%2==0?1:2.0); 
 //输出结果为1.0,结果类型与参与运算的数据最大的范围为准

5.位运算符:

将数据转成二进制计算

&:与,两个操作数中位都为1,结果才为1,否则结果为0。
|: 或,两个位只要有一个为1,那么结果就是1,否则就为0。
~:非,如果位为0,结果是1,如果位为1,结果是0。
^:异或,两个操作数的位中,相同则结果为0,不同则结果为1。
<<:左移,左移n位就是乘以2的n次方。 其功能把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数。
>>:右移,右移n位就是除以2的n次方其功能是把“>>”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。

2.条件结构

根据boolean值的不同,执行不同的处理逻辑 也称为分支结果

1.if结构

语法1:
if(condition){
statement1;
statement2;
}

注意:if小括号必须的,大括号可选,在要执行的代码只有一句的情况下可省略,在开发中不建议省略

......
案例:从键盘输入一个整数,如果是偶数,则直接输出,否则,不执行任何语句
   public static void main(String[] args){
  Scanner sc=new Scanner(System.in);
  int num=sc.nextInt();
  if(num%2==0){
	System.out.print(num);
  }
}

语法2:
if(condition){
statement1;
statement2;
}else{
statement3;
statement4;
}

案例:从键盘输入一个整数,如果是奇数,则直接输出提示"奇数",否则,直接输出"偶数"

       if(num%2!=0){
		System.out.println("奇数");
	   }
	   else{
		System.out.println("偶数");
	   }

语法3:
if(conditoin1){
statement1;
}else if(condition2){
statement2;
}else if(condition3){
statement3;
}else{
statement…;
}
注意:else放在最后,可省略
条件之间是互斥的
从上往下进行判断,只要有一个condition是true,则会终止后面的条件判断

if语句也能再嵌套if语句

案例:从键盘输入一个年份和一个月份,输出该月份有多少天?

 public static void main(String[] args) {
	Scanner input = new Scanner(System.in);

	System.out.println("请输入年份和月份:");
	int year = input.nextInt();
	int mouth = input.nextInt();
	if (mouth >= 1 && mouth <= 12) {
		if (mouth == 1 || mouth == 3 || mouth == 5 || mouth == 7 || mouth == 8 || mouth == 10 || mouth == 12) {
			System.out.println("31天");
		} else if (mouth == 2) {
			if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) {
				System.out.println("29天");
			} else {
				System.out.println("28天");
			}

		} else {
			System.out.println("30天");
		}
	} else {
		System.out.println("输入错误");
	}
	input.close();
}

2.switch 结构

switch 语句属于多分支结构,可以代替复杂的 if-else-if 语句,表达式的结果类型只能是 byte ,short , int ,char 类型,switch 语句是多分支的开关语句

switch(表达式){
case 常量表达式1 :
语句组 1;
break;
case 常量表达式2 :
语句组 2;
break;
case 常量表达式3 :
语句组 3;
break;

default:
语句组 n;
}

3.if 与 switch 的区别

if 语句和 switch 语句结构很相似,都是多分枝选择语句,但是switch 结构只能处理等值条件判断,而且必须是整型变量或者字符型变量,而多重 if 结构没有这个限制。使用 switch 结构时不要忘记每个 case 最后加 break ;通常情况,分支超过3层,使用 switch 语句,如果条件判断一个范围,使用 if-else-if 语句。

关于java中输入语句的一些说明

使用Scanner类:

(1)使用java.util包。 import java.util.*;

(2)构造Scanner类对象,它附属于标准输入流System.in。
Scanner input = new Scanner(System.in);

(3)常用的next()方法系列:
nextInt():输入整数 nextLine():输入字符串 nextDouble():输入双精度数 next():输入字符串(以空格作为分隔符)。

(4)输入单个字符:

Scanner input = new Scanner(System.in);

char c = input.next().charAt(0);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值