java的if else语句入门

条件语句,是程序中根据条件是否成立进行选择执行的一类语句,这类语句在实际使用中,难点在于如何准确的抽象条件。例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出“密码错误”这样的提示框等

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

 条件语句,是程序中根据条件是否成立进行选择执行的一类语句,这类语句在实际使用中,难点在于如何准确的抽象条件。例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出“密码错误”这样的提示框等。

    本部分对于条件语句的介绍,重点在于语法讲解和基本的使用,更详细的使用参看后续的综合示例部分。

    在Java语言中,条件语句主要有两类语法:if语句和switch语句。

 

1 、if语句

    if关键字中文意思是如果,其细致的语法归纳来说总共有三种:if语句、if-else语句和if-else if-else语句,下面分别进行介绍。http://hovertree.com/menu/java/

 

1.1 if语句

    该类语句的语法格式为: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);/* 何问起 hovertree.com */

 

    再来看一个示例代码,该代码的功能是实现将百分制的成绩转换为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’);

    }
/* 何问起 hovertree.com */

 

    从该代码中可知,每个else if语句在书写时是有顺序的,在实际书写时,必须按照逻辑上的顺序进行书写,否则将出现逻辑错误。

    if-else if-else语句是Java语言中提供的一个多分支条件语句,但是在判断某些问题时,会书写的比较麻烦,所以在语法中提供了另外一个语句——switch语句来更好的实现多分支语句的判别。

推荐:http://www.cnblogs.com/roucheng/p/3504465.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/120375.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 什么是三体系认证_HTTPS协议的技术方法

    什么是三体系认证_HTTPS协议的技术方法本文大部分内容摘自:http://www.wosign.com/faq/faq2016-0309-03.htm 尊重知识产权,转载注明Wosign———————————-专栏导航———————————-HTTPS协议详解(一):HTTPS基础知识 HTTPS协议详解(二):TLS/SSL工作原理HTTPS协议…

  • 什么是pisa测试_从PISA测试看中国四省市学生:成绩遥遥领先之外,这些特质令人意外…

    什么是pisa测试_从PISA测试看中国四省市学生:成绩遥遥领先之外,这些特质令人意外…印象中PISA测试就是证明中国学生是王者的时刻。最新的这次也不例外。但除了考试分数高,中国学生还有哪些特质?——我是无所不能的分割线———先来了解下什么是PISA:PISA全名“国际学生评估项目”(theProgrammeforInternationalStudentAssessment),由国际经合组织(OECD)举办,每三年一次,针对全世界多个国家和地区(包括但不…

  • zookeeper锁原理(如何实现分布式锁)

    zookeeper分布式锁的使用会涉及到分布式事物因此封装有@Transactional的方法如下:@OverridepublicBizReturn<String>insertMagicCubeVehicles(MagicCubeVehicleSaveRequestrequest)throwsBizException{ZooKeeperSes…

  • ArcGIS二次开发的几种方式

    ArcGIS二次开发的几种方式1、ArcEngine开发二次开发的常用方式,开发提供接口齐全,功能强大,比较成熟。但是,开发的软件使用需要指定版本的运行环境才能运行。2、Addin开发二次开发与ArcMap嵌入,开发方便,可

  • java和c 就业,c++和java的区别和就业前景

    java和c 就业,c++和java的区别和就业前景c++和java都是当下最热门的编程语言,二者各有各的优势。java与c++都是面向对象的语言,但java晚于c++发布,部分语法和思想也参考了c++,只是java没有头文件、指针、运算符重载、虚基类等等,算是c++语言的“纯净版”。c++和java的主要区别1、指针java语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,…

  • Windows~~~在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) ,并修改MySQL密码

    Windows~~~在MySQL登录时出现Access denied for user ‘root‘@‘localhost‘ (using password: YES) ,并修改MySQL密码适用于windows安装MySQL 对于出现拒绝访问root用户的解决方案 错误1045(28000):用户’root’@’localhost’(使用密码:YES)拒绝访问首先解析此英文:ERROR1045(28000):Accessdeniedforuser’root’@’localhost'(usingpassword:YES);解析的地方有…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号