循环与逻辑

时间:2019.07.25

1. 决策

  • 在所有的程序中,作出决策都是一项基本决策,比如,‘如果想要输入跟多的数据,那么就需要从键盘读入另一个值’或者‘如果在银行中的存款很多,那么就去买一辆高性能的汽车,否则就需要继续乘公交车’。无论做任何决策,在编程中都需要在具有常量,变量,表达式的各种值之间进行比较的能力,然后在根据确定的执行结果执行某一组语句或另一组语句。
  • 因此,理解如何做出程序决策的第一步是了解如何进行比较

1.1 比较

  • 用于比较数值的六种关系运算符

项目Value
关系运算符说明
>如果左边的数值大于右的操作数则产生的值为true,否则为false
==如果左边的操作数等于右边的操作数,则产生的值为true,否则为false
!=如果两个操作数互不相等,则返回true,否则返回false
<如果左边的操作数小于 右边的操作数,则返回true,否则返回false
复合运算符

  • 如果想存储比较结果,则可以使用boolean类型的变量
	boolean status = x-y<a+b;
	status = false

1.2 if语句

  • if语句的简单结构如下
	if(expression) {
	    statement;
	}

expression返回true则执行if语句内的表达式,否则,执行if语句之外的语句
我们应当坚持对语句进行缩进排列,以此作为对程序结构的提示
即使if语句内只有一条执行语句,我们也应当坚持用左右大括号将if条件的代码括起来

1.3 if else语句

	if() {
	   //------------------------------
	} else {
	   //------------------------------
	}

1.4 嵌套的if语句

	if(number%2 == 0) {
	   if(number < 50) {
	      System.out.println("you have got an even number < 50");
	   }
	}

else语句总是从属于在同一个程序块中前面最近的并且还没有与其他else语句相匹配的那条if语句

  • 例:判定字符的笨方法
public static void main(String[] args) {
          char symbol= 'A';
          //随机产生一个字符串
          symbol =(char) (128.0*Math.random());
          if( symbol>='A') {
        	  if(symbol<='Z') {
                   System.out.println("得到一个大写字母"+symbol);        		  
        	  }else{
	        		  if(symbol>='a') {
	            		  if(symbol<='z') {
	            			  System.out.println("该字符是小写字母"+symbol);
	            		  }else {
		                    	  System.out.println("你得到的不是一个字母"+symbol);
		                    }
	            	  }else{
		            		  System.out.println("该字符不是一个字母");
		                }
	            }
          }else{  
        	  System.out.println("该字符不是字母");
        	}
	}

1.4 比较枚举值

  • 我们不能够使用比较运算符来对枚举类型中的变量相互比较,但是可以使用每个枚举类型提供的方法。
  • 例:
    //定义枚举的类型
    enum Season { spring, summer, fall, winter }
    //初始化season类型中的变量
    Season s = Season.summer;
    //检查season变量当前存储的值
    if(s.equals(Season.spring)) {
       //-----------------------
    }else {
       //-----------------------
     }
    
    

2. 逻辑运算符(logical operator)

2.1 运算符

  • 使用逻辑运算符连接值为true或者false的多个表达式,针对Boolean量进行运算,所以也叫作布尔运算符(boolean operator)

符号全名符号全名
&逻辑与百度条件或
&&条件与逻辑非
一个竖线逻辑或

*按位运算符 & 和 | * 与 && 和 || 有些微妙的不同之处

  • AND运算符 &&& 用于逻辑表达式均为true时结果才为true

2.2 运算符 && 和 & 的区别

  • &&逻辑运算符,如果左边的表达式被确定为false,就不在对右边的表达式进行求值
  • & 条件运算符,需要对整个逻辑表达式进行求职,即使左边为false,也会对右边进行求值
  • 第一种,如果将&替换为&&,count只在左边成立时才加一
	if(++value% == 0 & ++count < limit) {
	     //Do something
	}
  • 第二种,将&&替换为&,如果count=0,程序会执行右边的代码,如果没有代码来阻止,则会抛出异常
	if(count>0&& total/count>5) {
	     //Do SomeThing
	}

2.3 逻辑或运算: || 和 |

  • 表达式均为false时结果才为false,表达式有一个为true时结果才为true。

2.4 逻辑非运算: !

  • 将操作数的布尔值求反

2.5 条件运算符

   older = yourAge > MyAge ? youAge : myAge;

2.6 switch语句

  • switch表达式的值
  • jdk1.6: byte, short, int, char, 枚举型的常量
  • jdk1.7新增: String

3. 变量的作用域

  • 局部变量从它们被声明的地方开始,一直包含到这个声明的语句块的结尾均可被访问。
  • 类变量:拥有较局部变量更长的生命周期,在标准类库Math中的变量PI就是类变量的例子,只要程序执行,这些变量就存在。
  • 实例变量:这些变量是类对象的一部分(instance variable)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值