一.

这里开始对if语句的应用,展开操作实验。

(截图给出了if第三种格式的一个应用,从中我得出以下几点:1. 一种最常见,也最合理的情况就是,在if条件语句的前面必须有前提条件。给定了前提,然后通过if条件语句来进行判断,从而决定,执行哪些语句。2. if和else if 里面都是单条语句,因此省略了{}。3. 案例是输出不同日期对应不同星期的情况,这表明什么if判断语句,解决的是“针对不同情况,实施不同措施”,不同种类的划分问题。4. 在if语句划分的基础上,引出了一个编码重复性的知识点。)

在判断输入数据代表星期几的例子中,证明了我对于==比较运算符理解的不够透彻,和对if第三种格式的理解不够。最后一个else后面不用接任何条件表达式,代表着除上面几种情况外的剩余所有数据。

注意:if的格式2和格式3,是对所有区间进行了划分,并且当每一部分区间成立时,应该执行什么语句都交代清楚了,只有执行过其中一部分,才会退出if语句。格式3相对2来说,区间划分的更多罢了。

自己尝试书写此例,发现错误。

删掉{}后,程序反而能够运行。

分析:仔细观看截图,发现是一些分支代码块少些了花括号。

这里还要说明一点,后面会讲到Switch语句的执行顺序,在if语句里面,执行的顺序是从上到下,一旦执行了某一个部分,那就直接退出if语句,Switch语句和if不一样。为什么会谈到执行顺序,就是因为结构比较复杂,内部的语句较多。

二.

首先要明白,星期和季节题都是锻炼对if语句的使用。这里的if语句代码块的书写要比之前的要复杂。

注意:星期和季节的例子可以这么来看,在给定的众多数据中,只有特定的一小部分数据有效,需要细分操作。剩下的无用数据归为一类。只是在判断给定的数据属于哪一类时,判断的语句书写有简单,有复杂。

思路:目前对于java语言认识不够深入,以现有的知识水准来写的话,只能用if格式三,且书写的语句很多。实话说,到目前为止也就接触过if语句,其他的稍微复杂一些就是运算符。运算符支撑不起这么大的摊子。我们现在处于程序流程控制的知识块,这是一个控制的节奏。一个复杂的问题,我们该如何控制它一步步运算下来。

书写形式如下:

int x;

if (x==3)

{

System.out.println(x+"对应的是春季");

}

.......

但是,有没有if的条件语句中可以一次性判别多个的形式?→这就和解题一样,虽然会好多简便的解题方法,但是由于对java语言的理解不深入,导致只能用笨拙的方法。

上面的缺点就在于,有太多的重复输出语句,如System.out.println(x+"对应的是春季");就要写四遍,还有夏季,秋季,冬季.....。

在编程领域有这么一句话,提高代码的复用性。一个代码用两次是可以的,一旦超过两次,就需要重新思考代码的书写。

提高代码复用性的手段有很多种,这里只介绍一种,连接条件语句。(这种情况被称作多条件对应相同内容)

怎么连接条件语句,就是用逻辑运算符。逻辑运算符的存在可以提高代码的复杂性。→一个复杂if语句的思考过程。

看下面的截图,使用的是短路或。自己对于前面的知识点,又开始有点遗忘。短路或和或运算得到的结果是一样的,只是在某一些情况下,短路或更能提高运算的效率。||左侧为true时,右侧就不在进行运算,直接输出结果为true,但是当左侧为false时,右侧还是要接着运算,这时的操作和单|是一样的。还有一点是,相较于其他运算符链接的参数而言,逻辑运算符可以链接的参数更多,可以说没有上限。

逻辑运算符不光可以连接两个表达式,如下

视频中出现了一个错误,截图如下

错误:没有找到对应的类。原因:设置了classpath,java命令执行时类文件名写错了。

在这里源程序写的是IfTest2.java,但是代码中的类名是class IfTest。因此,即使编译IfTest2.java源程序,输出认识对应类名的类文件,而非源程序名的类文件。当然,也有可能是在DOS中启用java运行时,敲错了类文件的名字。

经过前面的讲解,得到了一个简化的源程序,但是还是不够简化,if的条件语句里,month==3 || month==4 || month==5; 还是显得太长

可以对输入数据的判断换个说法(写或是将所有的条件表达式列出来,太繁琐,可以用范围来代表条件表达式),month>=3 & month<=5; &连接两个boolean类型的数据,if条件语句始终代表的是一种判断。在这里,又提到了&和&&的区别,&需要对两边的表达式都要进行判断,而&&只需要判断左边的。&&当左边为false时,才不会断定右边的表达式。→一定要明确一点,写&&或者||和单写&,|的结果是一样的,只是写了双的会提高部分的效率。

这里对if语句的认识再次升华,if语句第三种格式实际上是对全区间进行了判别。为什么会有全区间的判别,就在于输入的不确定性。

注意:if语句的格式2和格式3均是对全区域进行的判断分析。

三. 总结

在星期和季节的例子的学习中,其实还是回到了计算机编程的本源问题上来。计算机是帮助我们运算的,怎么运算靠的是程序。那么程序又是什么,程序是人类运算思想和运算过程的计算机展现。人怎么想,怎么做的,就用对应的计算机语言来表示。

转载于:https://www.cnblogs.com/wsw-bk/p/7496539.html

JAVA-初步认识-第三章-if语句练习-星期和季节相关推荐

  1. 尚硅谷Java入门视频教程第三章——数组

    尚硅谷Java入门视频教程第三章 第二章复习 课后习题 复习 嵌套循环典型例题 Ecplise的安装使用 第3章:数组 3.1 数组的概述 3.2 一维数组的使用 3.3 多维数组的使用 3.4 数组 ...

  2. 【JAVA SE】第三章 运算符、条件语句、switch结构、while循环、do…while循环、for循环、break关键字以及break和continue关键字

    第三章 运算符.条件语句.switch结构.for循环.break关键字以及break和continue关键字 文章目录 第三章 运算符.条件语句.switch结构.for循环.break关键字以及b ...

  3. Java并发编程 - 第三章 Java内存模型

    前言: Java 线程之间的通信对程序员完全透明,内存可见性问题很容易困扰 Java 程序员,本章将揭开 Java 内存模型神秘的面纱. 一.Java 内存模型的基础 1.1 并发编程模型的两个关键问 ...

  4. Effective Java 读书笔记----第三章

    第三章 对于所有通用的方法 主要讲的是对Object类的非final方法(equals,hashCode,toString,clone和finalize)覆盖的一些规则 1.覆盖equals时请遵守通 ...

  5. (转)JAVA AJAX教程第三章—AJAX详细讲解

    现在开始深入AJAX,这里还是按老思路,理论和实践相结合.这章的内容主要是讲解AJAX步骤详解,下一张将会用一个AJAX技术实现页面提示效果的实例来说明AJAX的实现. 一.AJAX步骤详解 AJAX ...

  6. Java自我学习第三章基础数据类型

    Java的基本数据类型(掌握) 1.整型系列 (1)byte:字节类型 占内存:1个字节 存储范围:-128~127 (2)short:短整型类型 占内存:2个字节 存储范围:-32768~32767 ...

  7. java学习笔记第三章

    三.数组 & 常用类 数组Array基本概念: 一维数组.二维数组.多维数组 数组是相同数据类型(可以为任意类型数据)的有序集合,通过索引来引用 数组也是对象:数组元素相当于对象的成员变量 数 ...

  8. C语言及程序设计初步例程-33 三种循环语句

    贺老师教学链接  C语言及程序设计初步 本课讲解 问题:求1+2+3+-+100 用while语句实现的程序 #include <stdio.h> int main() {int i=1, ...

  9. java 反编译class文件_用Java实现JVM第三章《解析class文件》

    解析class文件 案例介绍 本案例主要介绍通过java代码从class文件中解析:class文件.常量池.属性表: 作为类(或者接口)信息的载体,每个class文件都完整地定义了一个类.为了使jav ...

最新文章

  1. 未来3大趋势:人工智能 产业互联网 大数据与算法
  2. 服务器被非法上传文件,DiscuzX没有合法的文件被上传的修复方法
  3. 【全网最全的博客美化系列教程】06.推荐和反对炫酷样式的实现
  4. IIS6中配置PHP
  5. Source Insight中查看文件显示全路径
  6. 如何用keras实现deepFM
  7. ajax 与route的区别,浅析vue-router jquery和params传参(接收参数)$router $route的区别
  8. 在asp.net中实现回车替代Tab键
  9. Web开发模式(MVC设计模式)
  10. Linux IPC实践(13) --System V IPC综合实践
  11. linux 脚本 变量为空,Shell判断一个变量是否为空
  12. 苹果手机怎么在照片上添加文字_手机照片如何添加花样文字?原来方法这么简单!...
  13. TensorFlow精进之路(七):关于两层卷积神经网络对CIFAR-10图像的识别
  14. Python 数据结构与算法——图出度和入度的计算
  15. windows和wsl设置代理
  16. 按钮点击触发的事件只生效一次
  17. python贝叶斯估计库_tsbngen一个python库,可从任意动态贝叶斯网络生成时间序列数据...
  18. mongodb的基本使用_万金油_新浪博客
  19. Sass和Scss的区别
  20. 自动注册工厂消灭switch-case

热门文章

  1. mysql数据库的字符串表示什么意思_MySQL数据库的字符串类型详解(01)
  2. Zend Studio中文版
  3. ZBrushCore中文版
  4. JMeter 阶梯式加压测试插件 Concurrency Thread Group
  5. linux iptables:安全应用,防火墙
  6. 经典日剧、电影、动漫
  7. Java 加密 AES 对称加密算法
  8. 杂乱无章之javascript(一)
  9. 1049-飞机最少换乘次数问题
  10. Python下ImportError: DLL load failed: 找不到指定的模块