if语句
格式一:
if(条件表达式) {
执行语句
}
格式二:
if(条件表达式) {
执行语句:
} else {
执行语句;
}
public class IfDemo {
public static void main(String[] args) {
int x = 3;
if(x>1) {
System.out.println("yes");
} else{
System.out.println("no");
}
/*
if else结构简写格式:变量=(条件表达式)?表达式1:表达式2;
三元运算符:
好处:可以简化if else代码
弊端:因为是一个运算符,所以元算万必须要有一个结果。
*/
int a = 9,b;
b = (a>1)?100:200;
System.out.println("over");
}
}
1、如果if语句中只有一条语句,那么可以不写大括号。
2、如果if语句没写大括号,if就只能控制离它最近的单条语句。
格式三:
if(条件表达式) {
if(条件表达式) {
执行语句;
} else if(条件表达式) {
执行语句;
} ......
else {
执行语句;
}
public class IfTest {
public static void main(String[] args) {
//根据用户定义的数值不同,打印对应的星期英文。
int num = 2;
if (num == 1) {
System.out.println("monday");
}
else if(num == 2) {
System.out.println("tuesday");
}
else {
System.out.println("输入错误");
}
//根据用户输入的指定月份,打印该月份所属的季节。
//3,4,5春季 6,7,8夏季 9,10,11秋季 12,1,2冬季
int x = 7;
if (x>12 || x<1) {
System.out.println("没有该月份");
}
else if (x>=3 && x<=5) {
System.out.println(x+"月"+":"+"春季");
}
else if (x>=6 && x<=8) {
System.out.println(x+"月:夏季");
}
else if(x>=9 && x<=11) {
System.out.println(x+"月:秋季");
}
else {
System.out.println(x+"月:冬季");
}
}
}
if语句特点:
1、条件表达式后面不能加分号,否则无论表达式为true或者false,都不执行任何语句。2、第二种格式与三元运算符的区别:三元运算符运算完一定要有值出现。好处是:可以写在其他表达式中。
3、条件表达式无论写成什么样子,只看最终的结构是否是true或者false
switch语句
格式:
switch(表达式) {
case 取值1:
执行语句;
break;
case取值2:
执行语句;
break;
......
default:
执行语句;
break;
}
public class SwitchDemo {
public static void main(String[] args) {
int x =8;
switch (x) //被选择的表达式的值(x),只接受byte short int char四种类型
{
case 4:
System.out.println("a");
break;
case 6:
System.out.println("b");
break;
default: //case与default之间没有顺序。但是执行的时候先执行case
System.out.println("no");
//如果case和default没有对应的break,那么程序会向下执行,运行可以执行的语句,知道遇到break或者switch结尾结束
case 8:
System.out.println("c");
case 3:
System.out.println("d");
break;
}
}
}
![](https://img-blog.csdn.net/20150801205938392)
switch语句特点:
1、switch语句选择的类型只有四种:byte,short,int,char。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
2、case与default没有顺序。先执行第一个case,没有匹配的case执行default。
3、结束switch语句的两种情况:①遇到break,②执行到switch语句结束。
4、如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。
5、进入switch语句后,执行顺序是先执行case,然后从上到下,最后再执行default。即使default放在case上面,执行顺序也不变。
if和switch语句的应用:
if:
1.对具体的值进行判断。
2.对区间判断。
3.对运算结果是boolean类型的表达式进行判断。
switch:
1.对具体的值进行判断。
2.值的个数通常是固定的。对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高。
1.对具体的值进行判断。
2.对区间判断。
3.对运算结果是boolean类型的表达式进行判断。
switch:
1.对具体的值进行判断。
2.值的个数通常是固定的。对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高。
循环结构
while,do while循环
格式一:
while(条件表达式) {
执行语句;
}
格式二:
do {
执行语句;
} while(条件表达式);
public class WhileDemo {
public static void main(String[] args) {
/*
定义初始化表达式:
while(条件表达式) {
循环体(执行语句);
}
*/
int x = 4;
while(x<3) {
System.out.println("x="+x);
x++;
}
int y = 4;
do {
System.out.println("y="+y);
y++;
} while (x<3);
/*
while:先判断条件,只有条件满足才执行循环体
do while:先执行循环体,在判断条件,条件满足,再继续执行循环体。
*/
}
}
for循环
格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式) {
执行语句;(循环体)
}
public class ForDemo {
public static void main(String[] args) {
for(int x = 0; x<3 ; x++) {
System.out.println("x="+x);
}
int y = 0;
while(y<3) {
System.out.println("y="+y);
y++;
}
/*
变量有自己的作用域,对于for来讲,如果将用于控制循环的增量定义在for语句中。那么该变量只在for语句内有效
for语句执行完毕,该变量在内存中被释放。
for和while可以进行互换,如果需要定义循环增量,用for更为合适。
当要对某些语句执行很多次时,就使用循环结构。
*/
}
}
注意:
1、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放,而while循环使用的变量在循环结束后还可以继续使用。
2、一定要注意不要写while(x<3);这样的语句,后面的分号就是循环体,代表不执行任何语句,这个循环就成了一个死循环。
3、最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
4、在使用循环时候,一定要明确哪些语句需要参与循环,哪些不需要。循环通常情况下,需要定义条件,需要控制次数。
3、最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
4、在使用循环时候,一定要明确哪些语句需要参与循环,哪些不需要。循环通常情况下,需要定义条件,需要控制次数。
for嵌套循环
语句嵌套形式,其实就是语句中还有语句。循环嵌套
public class ForForDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
for(int x = 0; x<3 ; x++) { //打印矩形,控制矩形的行数
for(int y = 0; y<4 ; y++) { //控制矩形每一列的个数
System.out.print("*");
}
System.out.println();
}
for(int a = 0; a < 5 ; a++) {
for(int b = 5; b > a ; b--) {
System.out.print("*");
}
System.out.println();
}
for(int m = 0; m < 5 ; m++) {
for(int n = 0; n < m+1 ; n++) {
System.out.print("*");
}
System.out.println();
}
}
}
其他流程控制语句
break(跳出) :
应用范围:选择结构和循环结构。
continue(继续):
应用范围:循环结构。
continue语句是结束本次循环继续下次循环。
应用范围:循环结构。
continue语句是结束本次循环继续下次循环。