JAVA自学笔记,条件语句。

条件语句

在介绍条件语句之前,我们先了解一下程序的结构。顺序结构,选择结构和循环结构是结构化程序设计的3中基本结构,是各种复杂程序的基本构造单元。我们先了解一下条件语句。

if条件语句


if条件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行另外的语句。使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”,如果该表达式返回结果为true,则执行其后的语句;若为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句,if…else和if…else if 多分支语句。
简单的if条件语句

if(布尔表达式){
语句;
}

if在英语中的意思是如果。那么if语句可以理解为,如果布尔表达式为真(true),那么就运行语句。否则就跳过。
其中布尔表达式是必要参数,他最后返回的结果必须是一个布尔值。他可以是一个单纯的布尔变量或常量,也可以是关系表达式。而语句可以是一条或多条语句,当布尔表达式的值为true的时候执行这些语句。话不多说,直接上图。
在这里插入图片描述
在这里插入图片描述
可以看到,第二个if语句由于布尔表达式返回值为false,所以并没有执行,而是直接跳过执行下一句了。

if…else语句

if…else语句是条件与剧中最常用的一种形式,客会针对某种条件有选择的做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。

if(布尔表达式){
语句1;
}else{
语句2;
}

如果表达式的值为true,则执行紧跟if语句的语句1.如果表达式的值为false,则执行else后面的语句2。上图。、

在这里插入图片描述
在这里插入图片描述

if…else if多分支语句

if…else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为如果满足某种条件就进行某种处理;如果满足另一种条件,则进行另一种处理。

if(表达式1){
语句1;
}else if(表达式2){
语句2;
}else if(表达式n){
语句n;
}

表达式1~表达式n是必要参数,可以由多个表达式组成,但最后返回的结果一定要为boolean类型。
语句1~语句n可以是一条或多条语句,当表达式1的值为true时,执行语句1;当表达式2的值为true时,执行语句2,以此类推。
在这里插入图片描述
在这里插入图片描述
在这个例子中,变量a的值为20,所以条件a>30为假,程序向下执行判断下面的条件;条件a>10为真,所以执行条件a>10后面的程序块中的语句,输出a的值大于10,但小于30,然后退出if语句,也就是说最后两句不会再继续执行了。
if语句的嵌套
前面说的三种形式的条件语句,这三种形式的条件语句都可以嵌套条件语句。

if(表达式1){
          if(表达式2){
          		语句1;
               }else{
               语句2;
               }
}
if(表达式1){
          if(表达式2){
          		语句1;
               }else{
               语句2;
               }
  }else{
   if(表达式3){
          		语句3;
               }else{
               语句4;
               }
  }

条件语句可以有多种嵌套方式,可以根据具体需要进行设计,但是一定要注意逻辑关系的正确处理,使用if语句嵌套时要注意else关键字要和if关键字成对出现,并且遵守就近原则,else关键字和自己最近的if语句构成一对。
在这里插入图片描述
在这里插入图片描述
判断闰年的方法是,年份能被4整除且不能被100整除的数,或者能被400整除的数。这里也可以用上我们之前学到过的逻辑运算符来简化代码。
在这里插入图片描述
在这里插入图片描述
程序将能被4整除且不能被100整除,或者能被400整除这三个条件用一个表达式来完成。表达式是一个符合表达式,进行了3次算术运算和关系运算以及两次逻辑运算,算术运算和关系运算判断能否被整除,逻辑运算判断是否满足这3个条件。

switch多分支语句

switch多分支语句用来处理多数值的判断,举个例子,假设你去看电影,买了一张票。但是整个电影院不止你一个人看电影,每个人都有每个人的座位。大家都要坐在自己的位置观看影片。switch语句的作用就是让变量对号入座。并且做自己该做的事。switch可以用来做多选一,或者对号入座。那么有的小伙伴就要问了,既然是多选一为什么不用if语句呢?那么我们来看一下switch语句的语法。

switch(用于判断的参数){
case 值1:语句1;break;
case 值2:语句2;break;
case 值3:语句3;break;
.........
case 值n:语句n;break;
default:语句n+1;break;
}

switch语句中参数必须是整形,字符型,枚举类型,或字符串类型,值1~n必须是与参数兼容的数据类型。switch语句首先计算参数的值,如果参数的值和某个case后面的值相同,则执行该case语句后面的若干语句,知道遇到break语句为止(break的作用后面会说道)。此时如果该case语句中没有break语句,将继续执行后面的case中的若干个语句,知道遇到break语句为止。若没有任何一个值与参数的值相同,则执行default后面的语句。
break的作用是跳出整个switch语句。
default语句可以不写,如果它不存在,并且switch语句中表达式的值不与任何case的常量值相同,switch则不作任何处理。下面上图,来个小例子。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面我们看一下如果没有break关键字会发生什么事。
在这里插入图片描述
在这里插入图片描述
可以看到,我把星期四下面的break关键字注释掉以后。程序会继续向下执行输出星期五,然后在星期五的语句下面碰到了break关键字后才跳出switch循环。由此可见,如果忘记使用break关键字在我们以后的编程过程中可能会出现很大的问题。但是有的时候我们也可以故意不写break关键字。上图。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在上面这个例子中,只在固定的地方加入了break语句,我在控制台输入了8,那么switch语句就在case8的地方进入循环,但是case8后面没有任何语句也没有break语句,那么程序会继续向下执行,执行到case6的时候输出了一句成绩为良好,并且执行了break语句跳出了switch循环体。在jdk1.6以及以前的版本中,switch语句中表达式的值必须是整数型或者字符型,但是在jdk1.7以上的版本中,switch语句的表达式除了是整形或字符型,还可以是字符串类型。
注意,同一个switch语句,case的值必须互不相同。在switch语句中case语句后的值可以为整数(除long外),但绝不可以是实数。
if语句和switch语句都实现多条件判断,但if语句主要对布尔表达式,关系表达式,或逻辑表达式进行判断,而switch语句主要对值进行判断。因此,在程序开发中,如果遇到多条件判断的情况,并且判断的条件不是关系表达式,逻辑表达式,或者浮点类型,就可以使用switch语句代替if语句,这样执行效率会更高。

下面我们介绍一下循环语句。

while循环语句

while语句的循环方式为利用一个条件来控制是否要继续反复执行这个语句。语法如下:

while(条件表达式){
执行语句;
}

当条件表达式返回值为true时,则执行代码块中的语句(两个大括号中间的部分叫做代码块),当执行完代码块中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为false时,退出循环。上图。
在这里插入图片描述
在这里插入图片描述
上面这段代码,用变量a<=10作为条件表达式,并在执行语句中让a自增。这种做法是为了控制循环的次数。

do…while循环语句

do…while循环语句与while循环语句类似,他们之间的区别是while语句先判断条件是否成立在执行循环体,而do…while循环语句则至少先执行一次循环后,在判断条件是否成立。也就是说do…while循环语句中代码块中的程序段至少要被执行一次。语法如下。

do{
执行语句;
}
while(条件判断表达式);

下面我们上图。
在这里插入图片描述
在这里插入图片描述
我们可以看到。控制台输出了一次do…while循环体。因为a和b的值都不满足while后面的条件表达式,但是do…while循环至少会执行一次程序段,所以while循环中并没有被执行,也没有任何输出,而do…while循环执行了一次。

for循环语句

for循环是Java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某条语句,知道某个条件得到满足。语法如下。

for(表达式1;表达式2;表达式3){
语句;
}

表达式1:该表达式通常是一个赋值表达式,负责设置循环的起始值,也就是给控制循环的变量赋初值。
表达式2:该表达式通常是一个关系表达式,用控制循环的变量和循环变量允许的范围值进行比较。
表达式3:该表达式通常是一个赋值表达式,对控制循环的变量进行增大或减小。
语句:语句就不用我多说了吧-。-!
在这里插入图片描述
for循环语句的执行流程,先执行表达式1.判断表达式2,若其值为真,则执行for语句中指定的语句,然后执行表达式3。若表达式2值为假,则结束循环。下面写一个例子,用for循环完成1~100的相加。
在这里插入图片描述
在这里插入图片描述
这段代码中,我们首先创建一个变量a并赋值0,然后在for循环中定义一个变量i,当i<=100时执行循环体,每次执行完后i自增。变量a在for循环中起到的作用就是把每个i的值储存起来,以达到完成1~100之间的相加。

foreach语句

foreach语句是for语句的特殊简化版本。但是foreach语句并不能完全取代for语句,然而任何foreach语句都可以改写为for语句版本。foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为foreach语句。foreach语句在便利数组等方面提供了很大的方便。语法如下:

for(循环变量x : 遍历对象obj){
引用了x的Java语句;
}

遍历对面obj:依次去读取obj中元素的值。
循环变量x:将obj遍历读取出的值赋值给x。
上图。
在这里插入图片描述
在这里插入图片描述

循环语句的嵌套

循环有for,while,do…while3中方式,这3中循环可以相互嵌套,
for循环中嵌套for循环

for(...){
	for(...){
	...
	}

}

while循环中套用while循环

while(...){
	while(...){
		....
	}
}

while循环中套用for循环。

while(...){
	for(...){
	....
	}
}

下面来个经典的例子,乘法口诀表。
在这里插入图片描述
在这里插入图片描述
关于这个小例子,大家自己理解一下,然后自己动手写一下吧。

跳转语句

跳转语句就是break和continue语句。使用break语句可以跳出当前循环体,从而中断当前循环。如果遇到循环嵌套的情况,break语句将只会使程序流程跳出包含它的最内层循环结构,只跳出一层循环。
在这里插入图片描述
在这里插入图片描述
从这个运行结果我们可以看出循环中的if语句判断,如果j等于4,执行break语句,则中断了内层的for循环,输出的j值最大到3为止。但是外层的循环没有受任何影响,输出的i值最大到2,是for循环设定的最大值。
而continue语句是针对break语句的补充,continue不是立即跳出循环体,而是跳过本次循环解释前的语句,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue语句后,首先执行循环的增量部分,然后进行条件测试。在while和do…while循环中,continue语句使控制直接回到条件测试部分。
在这里插入图片描述
在这里插入图片描述
continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环。而break语句是结束整个循环过程,开始执行循环之后的语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值