流程控制
java se中的流程控制,跟其C语言基本一样,这里先讲if
if_else if_else
if(条件){
//执行的内容
}else if(条件){
//执行的内容
}else{
//执行的内容
}
如果条件成立则执行对应代码块中的内容,另外我们思考一下,如果将if elseif和else都换成if。
if(条件){
//执行的内容
}
if(条件){
//执行的内容
}
if(条件){
//执行的内容
}
能达到同样的效果,但是在if_else if_else中,如果一个成立了就不会再来判断另外的条件了,而上面的这种情况,如果if成立了,还是会执行下面的内容。
switch
使用switch通常是对一些固定值的判断,例如,输入一个数字,判断是星期几。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = scan.nextInt();
String str = "";
switch(i){
case 1:
str = "星期一";
break;
case 2:
str = "星期二";
break;
case 3:
str = "星期三";
break;
case 4:
str = "星期四";
break;
case 5:
str = "星期五";
break;
case 6:
str = "星期六";
break;
case 7:
str = "星期日";
break;
default:
str = "请输入正确的数字";
break;
}
System.out.println(str);
}
}
当我们是与一个固定值进行判断的时候,就可以用switch,另外switch还支持,char,short,byte,jdk1.7加入了String,switch常与枚举一起使用,什么是枚举,后面再说。
switch中的default不是必须的,如果你尝试将defualt放在最前面,如果满足case中的条件,它也不会执行default中的内容。
循环结构
do_while循环,该循环代表的意思,先执行一次,然后再通过while中的条件进行判断
int i = 1;
do{
i = i + 1;
}while(i<100);
while循环
while(条件){
//循环的内容
}
该循环跟do while循环不同的是,该循环需要先判断条件,如果不满足条件了,就退出循环
//
for循环
for(初始化;退出循环的条件;每次循环必执行的语句){
//循环的内容
}
例如常见的一个循环,输出100次hello
for(int i = 0;i<100;i++){
System.out.println("hello");
}
事实上,不管是while循环还是do while循环,都可以改造成for循环。
自动类型转换
char->short
byte->short
short->int->float->double
short->int->long
低字节的类型可以向高字节的类型转换。
高字节的类型如果要想向低字节的类型转换,需要使用强制类型转换,例如double转换成int,那么就可以直接使用double c = 1.23; int a = (int)c;
在java中,不能讲boolean类型转换成int类型。
++i与i++
先来看i++
int i = 1;
int a = i++;
System.out.println(a);
i++,表示先然i参与运算,然后再++,所以这里,输出的是1,可以表示成下面这种情况,所以最后i是2
int i = 1;
int a = i;
i = i + 1;
System.out.println(a);
再来看++i
int i = 1;
int a = ++i;
System.out.println(a);
++i,先让i自增,在让i参与运算,所以这里输出2,可以表示成下面这种情况
int i = 1;
i = i + 1;
int a = i;
System.out.println(a);