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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangwanpeng 初级黑马   /  2017-12-27 18:50  /  1180 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我的技术感言贴,关于IF的一些建议
条件语句,是程序中根据条件是否成立进行选择执行的一类语句,这类语句在实际使用中,难点在于如何准确的抽象条件。例如实现程序登录功能时,如果用户名和密码正确,则进入系统,否则弹出“密码错误”这样的提示框等。
    本部分对于条件语句的介绍,重点在于语法讲解和基本的使用,更详细的使用参看后续的综合示例部分。
    在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、 这里的功能代码只能是一行,关于多行结构的功能代码,后续将说明。
2if(条件表达式)后续一般不书写分号if语句的执行流程为:如果条件表达式成立,则执行功能代码,如果条件表达式不成立,则不执行后续的功能代码。
    示例代码:
    int a = 10
    ifa >= 0
    System.out.println(“a是正数”);
    ifa % 2 == 0
    System.out.println(“a是偶数”);
    在该示例代码中,第一个条件是判断变量a的值是否大于等于零,如果该条件成立则执行输出,第二个条件是判断变量a是否为偶数,如果成立也输出。
    注意以下代码的执行流程:
    int m = 20
    ifm > 20
    m += 20
    System.out.printlnm);
    按照前面的语法格式说明,只有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
    ifn % 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功能代码;
    语法说明:
    1else ifelseif两个关键字,中间使用空格进行间隔。
    2、 条件1到条件n都是boolean类型
    3else if语句可以有任意多句
    4、 最后的else语句为可选
    5、 如果功能代码部分不是语句块,也就是不用大括号,就只能写一句。
    执行流程:当条件1成立时,则执行功能代码1;当条件1不成立且条件2成立时,则执行功能代码2;如果条件1、条件2都不成立且条件3成立,则执行功能代码3,依次类推,如果所有条件都不成立,则执行else语句的功能代码。其执行流程的流程图如上所示。
    下面是一个实现根据月份的值,输出该月份包含的日期数,2月份全部输出28,不考虑闰年的示例代码:
   
public class Testc {
/**
  * if else/ if else if if区别
  *   if(){
  *    条件成立则执行
  *   }else(){
  *    if条件不成立则执行此
  *   }
  * ------------------------------------------------------------------------------
  *   if(){
  *    条件成立则执行
  *   }else if(){
  *    如果if不成立则判断else if成立则执行
  *   }else if(){
  *    上述else if不成立则继续判断执行先一个else if,else if条件成立则不继续往下判断执行
  *   }else{
  *    如果上述所有if或者else if 条件均不成立则最后执行else
  *   }
  */
public static void main(String[] args) {
  int a=100;
  if(a>1000){
   System.out.println("太好了,我可以买奥迪Q7");
  }else if(a>500){
   System.out.println("oh,我可以买奥迪沃尔沃cx90");
  }else if(a>95){
   System.out.println("也不错,道奇酷威我也很喜欢");
  }else if(a>90){
   System.out.println("捷达有新款哦");
  }else{
   System.out.println("先把房子落实了吧");
  }
  circleControler();
  System.out.println("i am back to main...........");
}
/**
  * break return continue区别fs
  * break 强制中断循环,循环体内的break之后的判断语句一律不判断,直接跳出循环体外
  *       在一系列的嵌套循环中使用break,他将仅仅终止最里层循环
  *      
  * continue 语句执行continue时循环将跳过次部分,直接回到循环的起始地进行判断和运算(a<10;a++)
  *
  * return 执行return时则会跳过该方法内所有嵌套循环直接跳转到调用该方法的地方,继续往下执行。
  * */
public static  void circleControler(){
  for(int i=0;i<2;i++){
   for(int a =0;a<10;a++){
    System.out.println("starts............."+a);
    if(a==5){
     return;
    }
   }
   System.out.println("跳出For小循环.............");
  }
  System.out.println("跳出For大循环.............");
}
}
    ifmonth == 1{
    days = 31;
    }else ifmonth == 2{
    days = 28;
    } else ifmonth == 3{
    days = 31;
    } else ifmonth == 4{
    days = 30;
    } else ifmonth == 5{
    days = 31;
    } else ifmonth == 6{
    days = 30;
    } else ifmonth == 7{
    days = 31;
    } else ifmonth == 8{
    days = 31;
    } else ifmonth == 9{
    days = 30;
    } else ifmonth == 10{
    days = 31;
    } else ifmonth == 11{
    days = 30;
    } else ifmonth == 12{
    days = 31;
    }
    System.out.printlndays;/* 何问起 hovertree.com */
复制代码
    再来看一个示例代码,该代码的功能是实现将百分制的成绩转换为ABCDE,代码如下:
   
复制代码
int score = 87;
    ifscore >= 90{
    System.out.println(‘A’);
    } else ifscore >= 80{
    System.out.println(‘B’);
    } else ifscore >= 70{
    System.out.println(‘C’);
    } else ifscore >= 60{
    System.out.println(‘D’);
    } else{
     System.out.println(‘E’);
    }
/* 何问起 hovertree.com */
复制代码
    从该代码中可知,每个else if语句在书写时是有顺序的,在实际书写时,必须按照逻辑上的顺序进行书写,否则将出现逻辑错误。
    if-else if-else语句是Java语言中提供的一个多分支条件语句,但是在判断某些问题时,会书写的比较麻烦,所以在语法中提供了另外一个语句——switch语句来更好的实现多分支语句的判别。

1 个回复

倒序浏览
看来你对循环的概念理解的很深刻了呢!学习就是这样,如果出现哪个知识点不明确的,一定要及时去询问,然后自己归纳和总结一遍。就业班加油哦!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马