if else结构
if可以单独使用,表示假如满足某个条件,就执行某个操作
比如l
int age=10;
if(age<20){
System.out.println("我未成年");
}
解释:当age小于20的时候,就会打印 “我还很小”这句话。
有时候我们可能需要一个另外的分支,来表示假如某个条件不满足,需要执行某个操作
if(age>20){
System.out.println("我成年了");
}else{
System.out.println("我未成年");
}
解释:当age不大于20时(小于等于)时,会执行else里面的代码,即打印出 “我未成年”
还有很多时候,我们可能需要判断很多个分支,使用if else已经不能满足需求了,那么就必须使用 if elseif else这样的结构
例子: int age=30;
if(age==10){
System.out.println(10);
}else if(age==20){
System.out.println(20);
}else if(age==30){
System.out.println(30);
}else{
System.out.println("其他");
}
上述代码最终会打印 30
例子: int i=6;
if(i<3){
System.out.println("小于3");
}else if(i<9){
System.out.println("大于等于3 小于9");
}else{
System.out.println("大于等于9");
}
上述代码最终会打印 “大于等于3 小于9”
switch语句
switch语句是一种选择语句,可以通过匹配某个条件,来执行某块代码。
int s=2;
switch (s) {
case1:
System.out.println("执行第一条");
break;
case2:
System.out.println("执行第二条");
break;
case3:
System.out.println("执行第三条");
break;
default:
System.out.println("执行其他");
break;
}
上面这段代码会打印 "执行第二条"
解释:switch的小括号里面的表达式必须是int或char类型,case表示匹配项,匹配成功后,会执行冒号
后面的代码,然后break;
假如所有case都不能匹配,就会执行default后面的代码(是否有点像 if elseif else ?)
break关键字不是必须的,但是假如没有它,就会在从匹配的那一行一直往下执行。
使用break关键字可以强制终止循环与for循环:
for(int i = 0; i < 5; i++) {
if(i==3){
break;
} System.out.println(i);
}
这段代码会打印出: 0,1,2
即当i等于3的时候跳出了循环,注意,假如有多层循环,break只能跳出最靠近自己的那层循环
for循环与continue关键字, continue关键字可以忽略当次循环,直接进入下一次循环
比如:for (int i = 0; i < 5; i++) {
if(i==3){
continue; }
System.out.println(i);
}
这段代码会打印出:0, 1, 2, 4
即当i等于3的时候忽略当次循环,继续进行下一次循环。
小结:从这两个例子可以看出break和continue的区别:前者是直接跳出循环,终止整个循环;后者是停止当前循环,继续执行后面的循环,不会终止整个循环;
另外,break和continue可以用于所有循环语句
加强版for循环:
Listlist=new ArrayList();//List是一个接口 ArrayList也一个是接口
Studentstu=new Student();//一个类的一个对象
For(Studentstu:list){
System.out.println(“我是加强版”);
}
在这里, while每次循环开始前都会判断w是否小于10(第一次也不例外),满足条件就执行环
体内的代码,等到w的值增加到10的时候,就跳出循环,所以最终w的值为 10.
假如把w++这句话去掉会怎样?
假如去掉w++,那么程序进入while循环后,会发现每次w的值都为0,并且每次在计算w<10都会发现条件为true,所以会永远执行下去,这叫做死循环。
循环语句之do while循环
int dw = 0;
do {
System.out.println("dw的值为 "+dw);
dw++;
} while (dw < 10);
System.out.println(“最终dw的值为: ” + dw);//会打印10
dowhile循环始终会循环一次,然后再去判断while中的条件,这也是与单独while循环最大的区别
考虑下面的问题:
假如说dw的初始值为11,下面的程序会执行么?
会的,因为无论怎样,第一次总会执行。这时候最终dw的值为12
变量的作用域:
Public static int age;为类变量可以再本类中任何static方法(类方法)中直接引用。
Public int age;为成员变量(不含static),可以再本类中任何非static方法(对象方法)里直接引用。
局部变量:声明在方法体内或者某个语句块内,语句块包括循环语句(比如for,while,do while,if else),这类变量只能在花括号内使用。
for(inti=0;i<10;i++){
System.out.println(i+": "+j);
}
这个for循环中的变量i都只能在for循环的花括号里引用,在for循环外是引用不到的,也就是说作用域只在for的花括号里
同一个作用域下不能声明相同名字的变量,否则会报编译错误。