java流程控制(分支语句if语句)
流程控制分为 1.顺序结构 2.分支结构 3.循环结构
1.顺序结构就是从上到下逐行执行,中间没有任何判断和跳转。
2.分支结构则是分为if-else和switch-case语句
3.循环结构下节介绍。
一.分支语句之if-else型
1.if-else型的(这种比较简单,只针对两种情况)直接看例子就可以懂了:
public class Main {
public static void main(String[] args) {
int m=3,n=6;
if (m>n){
System.out.println(m);
}
else
System.out.println(n);
}
}
这就是特别简单的一个if-else语句(可用三元运算符取代)但是需要注意if后的条件语句必须为布尔型,否则会报错,但是可以判断String型的例如:
public class Main {
public static void main(String[] args) {
String name="JOKER";
if (name=="JOKER"){
System.out.println(name);
}
else
System.out.println("兄弟,你搞错了");
}
}
上例可行。
2.if-else if-else if…型
这针对多个判断条件时使用,直接看例子叭:
public class Main {
public static void main(String[] args) {
int m=12;
if (m==11){
System.out.println(++m);
}
else if(m==12){
System.out.println("你猜对了");
}
}
}
这个直接判断了两次,因为第一个时false,所以进行第二个条件的判断,如果我写了多个else if,一个不符合就会执行下一个判断,知道符合或者else.
需要注意的:1.if-else语句可以不要最后的else。
2.if条件句后面最好加大括号,从而使if条件成立时,下面语句可以全部执行。如果if条件成立后只有一句语句,可以不加大括号,但是多句时,未加大括号,计算机只会默认执行第一句,然后报错(可以看下例一是错例)
3.如果if-else中镶嵌if,必须加大括号,否则else有就近原则,改变程序本意。
4.if中虽然可以镶嵌,但是别镶嵌太多了,否则会更复杂。
5.if–else if–else if 型的如果条件是互斥的,则不用考虑顺序问题,如果有范围大小区分,则需要考虑顺序问题(一般大的范围放在第一个if条件语句中)。如例子二和例子三。
例子一:
public class Main {
public static void main(String[] args) {
int m=12;
if(m==10) //未加大括号
m=m+10; //只执行第一句
System.out.println(m); //未加大括号,这语句就不是if中语句了
else //这里会报错了
System.out.println(m);
}
}
故不要省略大括号!!!
例子二:
public class Main {
public static void main(String[] args) {
int m=12;
if (m>0&&m<10){
System.out.println(m);
}
else if (m>=10&&m<=20)
System.out.println(++m);
}
}
这是互斥的,就可以不用考虑顺序,则if中的条件和else if中条件可以互换,换后也是同样结果。
例子三:
public class Main {
public static void main(String[] args) {
int m=122;
if (m<100){
System.out.println(m);
}
else if (m<200)
System.out.println(++m);
}
}
这个就不可以换if 和if-else的条件语句的顺序,如果换了,结果就改变了,所以尽可能让小范围在上,大范围在下,使之多情况可实现。