Java运算符和流程控制
1 运算符
1.1 比较运算符
- 比较运算符的结果都是boolean类型,也即是要么是true,要么是false。
- 比较运算符"=="不能写成"="。
- >
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a>b);//false
}
}
- <
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a<b);//true
}
}
- ==
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a==b);//false
}
}
- !=
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a!=b);//true
}
}
- >=
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a>=b);//false
}
}
- <=
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
int a = 3;
int b = 7;
System.out.print(a<=b);//true
}
}
- instanceof
package java003;
/**
* 2017/8/31.
* 说明:
*/
public class OperateDemo {
public static void main(String[] args) {
String str = "hello";
System.out.print(str instanceof String);//true
}
}
1.2 逻辑运算符
- &(与)、|(或)、!(非)、&&(短路与)、||(短路或)、^(异或)
- 逻辑运算符用于连接两个boolean类型的表达式。
- 示例
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
int x = 3;
System.out.print(x >= 2 && x <= 5);
}
}
- &的特点:
- 如下图所示:表达式1&表达式2的结果。
| 表达式1 | 表达式2 | 结果 |
| true | false | false |
| true | true | true |
| false | false | false |
| false | true | false |
- &运算的规律:一假全假,全真为真。
- |的特点
- 如下图所示:表达式1|表达式2的结果。
| 表达式1 | 表达式2 | 结果 |
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
- |运算的规律:一真全真,全假才假。
- 示例:
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
int x = 5;
System.out.print(x > 5 || x <6);
}
}
- !的特点
- 如下图所示:!表达式
| 表达式 | 结果 |
| true | false |
| false | true |
- 非运算的规律:非假则真,非真则假。
- 示例:
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
int x = 5;
System.out.print(x == 5);
System.out.print(!(x==5));
}
}
- ^
- 如下图所示:表达式1^表达式2
| 表达式1 | 表达式2 | 结果 |
| true | true | false |
| false | true | true |
| true | false | true |
| true | true | true |
- 我们知道,在计算机中一般0表示false,1表示true,当然,需要声明的是java中不是用0表示false,1表示true的,在java中,两者不等价。
- 异或的规律:相同为0,不同为1。即异或左右两边的表达式,如果相同,就是false,不同,就是true。
package java003;
/**
* 2017/8/31.
* 说明:逻辑运算符
*/
public class OperateDemo2 {
public static void main(String[] args) {
System.out.print(true^true);//false
System.out.print(true^false);//true
System.out.print(false^true);//true
System.out.print(false^false);//false
}
}
1.3 位运算符
- <<(左移)、>>(右移)、>>>(无符号右移)、&(与)、|(或)、^(异或)、~(反码)
- 示例:6&3,int类型的数据在内存中是32位,此处为了方便,就没有画32位了。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 6 ;
int b = 3;
System.out.print( a & b);
}
}

- 示例:6 | 3
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 6 ;
int b = 3;
System.out.print( a | b);
}
}

- 示例:6^3
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 6 ;
int b = 3;
System.out.print( a ^ b);
}
}

- 示例:~3
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( ~ b);//-4
}
}
- 示例:3<<2 ,左移一位,乘以2。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( 3 << 2);
}
}

- 示例:3 >>2 ,右移一位除以2,如果首个数字是0,则右移的时候,左边空位补0,;如果首个数字是1,则右移的时候,左边空位补1。因为在计算机中0表示正数,1表示负数。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( b >> 2);
}
}

- 示例:3 >>>2,不管首位是0还是1,在左边空位都是补0。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int b = 3;
System.out.print( b >>> 2);
}
}
- 面试题1:最有效率的方式算出2*8等于几?
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
System.out.print(2 << 3);
}
}
- 面试题2:对两个整数变量的值进行交换(不需要第三变量)
- 思路①,有弊端,如果两个整数的数值太大,会超出int范围,会引起精度问题。
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 2;
int b = 3;
a = a - b ;
b = a + b;
a = b - a;
System.out.print("a="+a+",b="+b);
}
}
- 思路②
package java003;
/**
* 2017/8/31.
* 说明:位运算符
*/
public class OperateDemo3 {
public static void main(String[] args) {
int a = 2;
int b = 3;
a = a ^ b;
b = a ^ b ;
a = a ^ b;
System.out.print("a="+a+",b="+b);
}
}
1.4 三元运算符
- 格式:
- (条件表达式) ? 表达式1 :表达式2;
- 如果条件表达式为true,运算后的结果是表达式1,
- 如果条件表达式为false,运算后的结果是表达式2。
- 示例:求两个整数的最大值。
package java003;
/**
* 2017/9/1.
* 说明:三元运算符
*/
public class OperateDemo4 {
public static void main(String[] args) {
int a = 3;
int b = 10;
int c = (a >= b) ? a : b;
System.out.print("最大值是:"+c);
}
}
2 程序的流程控制
- 程序的流程控制分为:
- 顺序结构
- 分支结构
- 循环结构
2.1 顺序结构
- 示例:
package java003;
import sun.applet.Main;
/**
* 2017/9/1.
* 说明:顺序结构
*/
public class OperateDemo5 {
public static void main(String[] args) {
System.out.print("哈哈");
System.out.print("呵呵");
System.out.print("嘻嘻");
System.out.print("笨笨");
}
}
2.2 分支语句
2.2.1 分支语句之if语句
- 格式1
if(条件表达式){
执行语句;
}

- 格式2
if(条件表达式){
执行语句1;
}else{
执行语句2;
}

- 格式3
if(条件表达式1){
执行语句1;
}else if(条件表达式2){
执行语句2;
}else{
执行语句3;
}

- 示例:
package java003;
/**
* 2017/9/1.
* 说明:if
*/
public class IfDemo1 {
public static void main(String[] args) {
int x = 3;
if(x > 1){
System.out.println("正确");
}
System.out.println("结束");
}
}
- 示例:
package java003;
/**
* 2017/9/1.
* 说明:if
*/
public class IfDemo2 {
public static void main(String[] args) {
char gender = '男';
if(gender == '男'){
System.out.println("性别为男");
}else{
System.out.println("性别为女");
}
}
}
- 示例:
package java003;
/**
* 2017/9/1.
* 说明:if
*/
public class IfDemo3 {
public static void main(String[] args) {
int x = 3;
if(x >1){
System.out.print("a");
}else if(x >2){
System.out.print("b");
}else if(x >3){
System.out.print("c");
}else{
System.out.print("d");
}
}
}
- 练习一:用户输入指定的数字,然后输出对应的星期几?
package java003;
/**
* 2017/9/1.
* 说明:
*/
public class IfTest1 {
public static void main(String[] args) {
int i = 5;
if(i == 1){
System.out.print("星期一");
}else if(i == 2){
System.out.print("星期二");
}else if(i == 3){
System.out.print("星期三");
}else if(i == 4){
System.out.print("星期四");
}else if(i == 5){
System.out.print("星期五");
}else if(i == 6){
System.out.print("星期六");
}else if(i == 7){
System.out.print("星期日");
}else{
System.out.print("输入错误");
}
}
}
- 练习二:根据指定月份,输出对应的季节
package java003;
/**
* 2017/9/1.
* 说明:
*/
public class IfTest2 {
public static void main(String[] args) {
int month = 3;
if((month == 3) || (month == 4 )|| (month == 5)){
System.out.print("春季");
}else if((month == 6) || (month == 7 )|| (month == 8)){
System.out.print("夏季");
}else if((month == 9) || (month == 10 )|| (month == 11)){
System.out.print("秋季");
}else if((month == 12) || (month == 1 )|| (month == 2)){
System.out.print("冬季");
}else{
System.out.print("输入错误");
}
}
}
2.2.2 分支语句之switch语句
- 格式
switch(表达式){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
……
default:
执行语句n;
break;
}
- 说明:在JDK7之前,表达式可以是byte、short、int和char类型。在JDK7之后,支持String类型。
- 示例:
package java003;
/**
* 2017/9/1.
* 说明:switch
*/
public class SwitchDemo {
public static void main(String[] args) {
int x = 3;
switch (x){
case 1:
System.out.print("x=1");
break;
case 2:
System.out.print("x=2");
break;
case 3:
System.out.print("x=3");
break;
default:
System.out.print("呵呵");
break;
}
}
}
- 练习:根据数字输出对应的星期几?
package java003;
/**
* 2017/9/1.
* 说明:输入数字对应星期几?
*/
public class SwitchTest {
public static void main(String[] args) {
int day = 3;
switch (day){
case 1:
System.out.print("星期一");
break;
case 2:
System.out.print("星期二");
break;
case 3:
System.out.print("星期三");
break;
case 4:
System.out.print("星期四");
break;
case 5:
System.out.print("星期五");
break;
case 6:
System.out.print("星期六");
break;
case 7:
System.out.print("星期七");
break;
default:
System.out.print("输入错误");
break;
}
}
}
2.2.3 if和switch的区别
- if
- ①对具体的值进行判断。
- ②对区间进行判断。
- ③对运算结果是boolean类型的表达式进行判断。
- switch
- ①对具体的值进行判断。
- ②值得个数是固定的。
2.3 循环结构
2.3.1 while循环
- 格式
while(条件表达式){
执行语句;
}

- 示例:
package java003;
/**
* 2017/9/1.
* 说明:while
*/
public class WhileDemo {
public static void main(String[] args) {
int x = 1 ;
while(x <= 3){
System.out.println("x="+x);
x++;
}
}
}
package java003;
/**
* 2017/9/1.
* 说明:while
*/
public class WhileDemo {
public static void main(String[] args) {
int x = 1 ;
while(x++ <= 3){
System.out.println("x="+x);
}
}
}
- 练习:获取1到10的和。
package java003;
/**
* 2017/9/1.
* 说明:计算从1到10的和
*/
public class WhileTest {
public static void main(String[] args) {
int sum = 0;
int i = 1 ;
while(i<= 10 ){
sum += i;
i++;
}
System.out.println("1到10的和是:"+sum);
}
}
2.3.2 do-while循环
- 格式
do{
执行语句;
}while(条件表达式);

- 示例:
package java003;
/**
* 2017/9/1.
* 说明:
*/
public class DoWhileDemo {
public static void main(String[] args) {
int x = 1;
do{
System.out.println("x="+x);
x++;
}while(x <= 3);
}
}
- do-while语句的特点:无论条件是否满足,循环体至少执行一次。
2.3.3 for循环
- 格式
for(表达式1;表达式2;表达式3){
执行语句;
}

- for循环的执行流程
- ①表达式1只读一次,判断表达式2,为真就执行循环体,然后再执行表达式3,接着继续判断表达式2,重复整个过程,直到表达式2不成立为止。
- ②for和while循环是可以互换的,区别在于for为了循环而定义的变量在for循环结束后就在内存里释放,而while循环使用的变量在循环结束后还可以继续使用。
- ③最简单的无限循环:while(true){},for(;;){},无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环(常见的是if和break搭配)。
- 示例:
package java003;
/**
* 2017/9/1.
* 说明:
*/
public class ForDemo {
public static void main(String[] args) {
int sum = 0;
for(int x = 1;x <= 10;x ++){
sum += x;
}
System.out.println("sum="+sum);
}
}
2.3.4 循环结构的应用场景
- 当对某些代码执行很多次的时候,使用循环结构来完成。
Java运算符和流程控制的更多相关文章
- 三、 java运算符与流程控制
赋值运算 赋值运算符:=,+=,-=,×=,/=,%= class fuzhiyunsuan{ public static void main(String[] args){ int i1 = 10; ...
- Java 中的运算符和流程控制
Java 中的运算符和流程控制 + 面试题 算术运算符 Java 中的算术运算符,包括以下几种: **算术运算符** **名称** **举例** + 加法 1+2=3 - 减法 2-1=1 \* 乘法 ...
- Java中的流程控制(三)
关于Java中的流程控制 关于Java中的流程控制 4.do while语句 do while语句的功能和while语句差不多,只不过它是在执行完第一次循环后才检测条件表达式的值,这意味着包含在大括号 ...
- Java中的流程控制(二)
关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch( ...
- Java中的流程控制(一)
程序的流程控制(一) 关于Java程序的流程控制(一) 从结构化程序设计角度出发,程序有三种结构: 顺序结构 选择结构 循环结构 1.顺序结构 就是程序从上到下一行行执行,中间没有判断和跳转. 2.i ...
- Java 基本语法---流程控制
Java 基本语法---流程控制 0. 概述 三大流程控制语句:顺序.选择.循环. 选择结构: if 结构,if - else结构: 多重 if - else 语句 ; 嵌套 if - else 语句 ...
- Java基础-程序流程控制第二弹(循环结构)
Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...
- Java基础-程序流程控制第一弹(分支结构/选择结构)
Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...
- Linux基础-shell脚本知识整理和脚本编写----------变量、运算符、流程控制、函数、计划任务(发送邮件)
I:知识整理:变量.运算符.流程控制.函数.计划任务 变量 系统变量:set:显示所有变量 env:环境变量 常用系统变量: path pwd lang home his ...
随机推荐
- Head First 设计模式 第6章 命令模式
第6章 命令模式 在本章,我们将把封装带到一个全新的境界,把方法调用封装起来.没错,通过方法调用,我们可以把运算块包装成型.所以,调用此运算的对象不需要关心运算是如何进行的,只要知道如何使用包装成型的 ...
- appach-maven-3.5.0配置与下载
今天需要搭建javaweb开发的环境,需要配置maven.弄了半天终于配置好了.蛋疼的一批.楼主用的是win10的系统.不知道Linux下的也是不是这么坑! 首先,需要把maven的包下载下来.进入h ...
- sshpass做秘钥分发,ansible做自动化运维工具
最近公司机器的增多,顺便还要上报表系统,考虑到服务器越来越多,手工的管理显得越来的越吃力,所以打算推进公司自动化运维工具的使用. 推进的过程中,一步一个坑踩过来的.由于公司之前未运用过自动化运维工具, ...
- salesforce 得到下拉列表控制依赖值的方法
salesforce中得到下拉列表的控制依赖值没有系统提供的方法.在网上找了一些,自己也编辑了一下. public static List<Integer> B64ToBytes (Str ...
- python===基础,修改idle的输入风格
http://blog.csdn.net/aq_cainiao_aq/article/details/51701861
- webdriver
导入模块: from selenium import webdriver from selenium.common.exceptions import NoSuchElementException 选 ...
- 使用Openfire配置安卓客户端聊天服务器
Openfire是一种即时通信服务器,采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务. Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP( ...
- noi2015 day1 T2软件包管理器
noi2015 软件包管理器 Description Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软 ...
- 第一次用上 Android Studio 2.3 过程及错误解决
因为要开发Android5.0的缘故,抛弃了eclipse转到了Android Studio,第一次使用就是遇到了许多问题,终于是解决问题了,特意写一篇博文给各位要准备从eclipse转到Androi ...
- scikit_learn入门
原文:http://www.cnblogs.com/taceywong/p/4568806.html 原文地址:http://scikit-learn.org/stable/tutorial/basi ...