A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 michael_wlq 于 2015-9-29 23:13 编辑

if语句:if语句的格式1:

                if(比较表达式) {
                        语句体;
                }
------------------------------------------
if语句的格式2:
if(比较表达式) {
                        语句体1;
                }else {
                        语句体2;
                }

--------------------------------------------
if语句的格式3:
if(比较表达式1) {
                        语句体1;
                }else if(比较表达式2) {
                        语句体2;
                }else if(比较表达式3) {
                        语句体3;
                }
                ...
                else {
                        语句体n+1;
                }

【注意】if就是如果的意思,参数肯定是条件,既然是条件就有成立不成立之分,所以参数必须是布尔类型的值或者结果是布尔类型的表达式。
注意事项:
1、最后一个else可以省略,但是建议不要省略,可以对范围外的错误值提示 ;
2、else后面是没有比较表达式的,只有if后面有;
3、对于格式3的程序,只要有一个if(或者else if)条件满足,执行完该if语句(或者else if)里面的语句后,其他语句将不再执行。
------------------------------------------------------------------------------------------------------------------------------------
switch语句
switch语句的格式:
                switch(表达式) {
                      case 值1:
                                语句体1;
                                break;
                            case 值2:
                                语句体2;
                                break;
                            …
                            default:        
                                语句体n+1;
                                break;
             }
【注意】
1.default就是如果没有符合的case就执行它,default并不是必须的;
2.case后的语句可以不用大括号,case 后面必须是常量表达式constant expressions,错误表示如: case x ;
3.switch语句的判断条件可以接受int、byte、char、short、 enum(JDK1.5)、String(JDK1.7),以及前面几个基本数据类型的包装类,不能接受其他类型;
4.一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句。
5.switch语句遇到右括号}或者break语句结束。
【注意】从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止,随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case;假如任何一个case语句的值都不等于表达式的值,就运行可选标签default之下的语句;假如表达式的值和任何一个case标签都不匹配,同时没有发现一个default标签,程序会跳过整个switch语句,从它的结束大括号之后的第一个语句继续执行。
示例:
  1.                 String msg = "dragon";
  2.                
  3.                 switch(msg) {
  4.                 case "rabbit": System.out.println("rabbit ");
  5.                 case "dragon": System.out.println("happy new year");
  6.                 default:System.out.println("what ?");
  7.                 case "monkey": System.out.println("monkey");break;
  8.                 case "viper" : System.out.println("dokudoku!!");
  9.                 }
复制代码
输出结果:
  1. happy new year
  2. what ?
  3. monkey
复制代码
上面例子说明了两个问题,第一个是不加break的后果,第二个是default的位置影响。//遇到case匹配之后,顺序执行后面的代码,而不再进行匹配,知道遇到break语句或者右大括号为止(switch语句结束),而并非是执行完default语句就结束。





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马