ifelse语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ifelse语句
条件语句,是程序中根据条件是否成⽴进⾏选择执⾏的⼀类语句,这类语句在实际使⽤中,难点在于如何准确的抽象条件。
例如实现程序登录功能时,如果⽤户名和密码正确,则进⼊系统,否则弹出“密码错误”这样的提⽰框等。
本部分对于条件语句的介绍,重点在于语法讲解和基本的使⽤,更详细的使⽤参看后续的综合⽰例部分。
if else语句
该类语句的语法格式为:if(条件表达式)
功能代码;语法说明:if是该语句中的关键字,后续紧跟⼀对⼩括号,该对⼩括号任何时候不能省略,⼩括号的内部是具体的条件,语法上要求该表达式结果为boolean类型。
后续为功能的代码,也就是当条件成⽴时执⾏的代码,在程序书写时,⼀般为了直观的表达包含关系,功能代码⼀般需要缩进。
需要特别注意的是:
1、这⾥的功能代码只能是⼀⾏,关于多⾏结构的功能代码,后续将说明。
2、 if(条件表达式)后续⼀般不书写分号if语句的执⾏流程为:如果条件表达式成⽴,则执⾏功能代码,如果条件表达式不成⽴,则不执⾏后续的功能代码。
⽰例代码:
int a = 10;
if(a >= 0)
System.out.println(“a是正数”);
if( a % 2 == 0)
System.out.println(“a是偶数”);
在该⽰例代码中,第⼀个条件是判断变量a的值是否⼤于等于零,如果该条件成⽴则执⾏输出,第⼆个条件是判断变量a是否为偶数,如果成⽴也输出。
注意以下代码的执⾏流程:
int m = 20;
if( m > 20)
m += 20;
System.out.println(m);
按照前⾯的语法格式说明,只有m+=20;这⾏代码属于功能代码,⽽后续的输出语句和前⾯的条件形成顺序结构,所以该程序执⾏以后输出的结果为20.如果当条件成⽴时,需要执⾏的语句有多句,则可以使⽤语句块来进⾏表述,语法格式如下:
if(条件表达式){
功能代码块;
}
使⽤这种语法格式,使⽤⼀个代码块来代替前⾯的功能代码,这样可以在代码块内部书写任意多⾏的代码,⽽且也使整个程序的逻辑⽐较清楚,所以在实际的代码编写中推荐使⽤该种逻辑。
1.2 if-else语句
if-else语句实现了封闭的条件,在程序中使⽤的更加常见。
其中else关键字的作⽤是“否则”,即条件不成⽴的情况。
if-else语句的语法格式如下:
if(条件表达式)
功能代码1;
else
功能代码2;
语法说明:其中前⾯的部分和if语句⼀样,else部分后⾯是功能的代码,按照该语法格式,功能代码只能有⼀句。
执⾏顺序:如果条件成⽴,则执⾏if语句中的功能代码1,否则执⾏else中的功能代码2.⽰例代码为:
int n = 12;
if(n % 2 != 0)
System.out.println(“n是奇数”);
else System.out.println(“n不是奇数”);
则因为n%2的值是0,条件不成⽴,则执⾏else语句的代码,程序输出“n不是奇数”。
在实际使⽤时,为了结构清楚,以及可以在功能代码部分书写多⾏代码,⼀般把功能代码部分使⽤代码块,则语法格式为:
if(条件表达式){
功能代码块
}else{
功能代码块
}
当程序中有多个if时,else语句和最近的if匹配。
⽰例代码:
if(条件1)
功能代码1;
if(条件2)
功能代码2;
else功能代码3;
则这⾥的else语句和条件2对应的if语句匹配,前⾯的条件1是⼀个独⽴的语句。
在实际代码中,可以使⽤⼤括号使整个程序的结构更加清楚。
对于if-else语句来说,因为if的条件和else的条件是互斥的,所以在实际执⾏中,只有⼀个语句中的功能代码会得到执⾏。
在实际开发中,有些公司在书写条件时,即使else语句中不书写代码,也要求必须书写else,这样可以让条件封闭。
这个不是语法上必须的。
1.3 if-else
if-else语句在现实中,有些时候的条件不是⼀个,⽽是⼀组相关的条件,例如将阿拉伯数字转换为中⽂⼤写,根据分数转换为对应的等级等,都是多条件的结构,在程序中为了避免写多个if语句的结构,提供了⼀类专门的多分⽀语句,这就是if-else if-else语句。
if-else if-else语句的语法格式为:
if(条件1)
功能代码1;
else if(条件2)
功能代码2;
else if(条件3)
功能代码3;
……
else功能代码;
语法说明:
1、 else if是else和if两个关键字,中间使⽤空格进⾏间隔。
2、条件1到条件n都是boolean类型
3、 else if语句可以有任意多句
4、最后的else语句为可选
5、如果功能代码部分不是语句块,也就是不⽤⼤括号,就只能写⼀句。
执⾏流程:当条件1成⽴时,则执⾏功能代码1;当条件1不成⽴且条件2成⽴时,则执⾏功能代码2;如果条件1、条件2都不成⽴且条件3成⽴,则执⾏功能代码3,依次类推,如果所有条件都不成⽴,则执⾏else语句的功能代码。
其执⾏流程的流程图如上所⽰。
下⾯是⼀个实现根据⽉份的值,输出该⽉份包含的⽇期数,2⽉份全部输出28,不考虑闰年的⽰例代码:
int month = 3;
int days = 0; //⽇期数
if(month == 1){
days = 31;
}else if(month == 2){
days = 28;
} else if(month == 3){
days = 31;
} else if(month == 4){
days = 30;
} else if(month == 5){
days = 31;
} else if(month == 6){
days = 30;
} else if(month == 7){
days = 31;
} else if(month == 8){
days = 31;
} else if(month == 9){
days = 30;
} else if(month == 10){
days = 31;
} else if(month == 11){
days = 30;
} else if(month == 12){
days = 31;
}
System.out.println(days);/* 何问起 */
再来看⼀个⽰例代码,该代码的功能是实现将百分制的成绩转换为A、B、C、D和E,代码如下:
int score = 87;
if(score >= 90){
System.out.println(‘A’);
} else if(score >= 80){
System.out.println(‘B’);
} else if(score >= 70){
System.out.println(‘C’);
} else if(score >= 60){
System.out.println(‘D’);
} else{
System.out.println(‘E’);
}
/* 何问起 */。