Java基础(流程控制)
- if语句
if (a>b); //if语句不常见的一个问题
System.out.println("haha")
如果a>b, 会执行分号,然后打印haha, 如果a<b,那么将不会执行分号, 然后打印haha. 这样无论如何都会打印haha
- if else语句
if(true){
...;}
else if(...){
...;}
else{
...;}
- switch
switch可以使用byte,short,int,char,String,enum
switch(number){
case 1:
...;
break;
case 2:
...;
break;
case 3:
...;
break;
default:
// 不符合情况
...;
}
当case没有break是会继续往下执行,知道出现break或全部执行完毕.
switch(k) {
case 1:
System.out.println(k);
case 2:
System.out.println(k);
case 10:
System.out.println(k);
break;
//当k为1时, 会打印三次,当k为2时,会打印两次
- while循环 先判断后执行
- do-while循环 先执行后判断
while(i>1){
...;
}
do{
...;
}while(i>1);
- for循环
for(int i=1;i<10;i++){
...;
}
- continue 继续下次循环
- break 结束当前循环(一个循环)
使用布尔值变量结束外部循环
boolean breakout = false; //是否终止外部循环的标记
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println(i + ":" + j);
if (0 == j % 2) {
breakout = true; //终止外部循环的标记设置为true
break;
}
}
if (breakout) //判断是否终止外部循环
break;
}
使用标签结束外部循环(大概是标签的唯一作用)
outloop: //标签取名随意,是后面带冒号的标识符
循环1
{
循环2
{
continue outloop;
}
}
//continue outloop同时中断内部迭代及外部迭代,直接转到label处,随后,它实际上是继续迭代过程,但却从外部迭代开始。
循环1
{
循环2
{
break outloop;
}
}
//break label也会中断所有迭代,回到label处,但并不从新进入循环,即实际上是完全中止了两个迭代。
增强for循环
forech迭代(与python相同)
for(声明语句: 表达式)
声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式是要访问的数组名,或者是返回值为数组的方法。
只能遍历数组、集合
int num[] = {1,2,3,4,5};
for(int aNumber: num){
System.out.println(aNumber);
}