分支语句
分支语句简单来说就是根据不同情况做出不同选择,执行不同的逻辑。
简单判断语句:
if(表达式(返回值是boolean类型)){
执行语句1;
}
else{//如果不需要false的部分判断例如列出1~10中的素数,则可不加
执行语句2;
}
首先判断if中的表达式的值,如果是true则执行执行语句1,如果是false则执行执行语句2。执行语句可以是任何合法代码。
用例:
//判断某一年是否为闰年
if(x % 100 == 0 && x % 400 == 0)
{
System.out.println(x+"年为闰年\n");
}
else{
if(x % 4 == 0)
{
System.out.println(x+"年为闰年\n");
}
else
{
System.out.println(x+"年为平年\n");
}
}
分支嵌套
if(表达式1){
执行语句1;
}else if(表达式2){
执行语句2;
}else{//可有可无
执行语句3;
}
先判断表达式1,若为真则执行执行语句1,之后结束;若表达式1为假,则继续执行判断表达式2,若表达式2为真,则执行执行语句2,然后结束;若表达式2也为假,则执行执行语句3,然后结束。
用例:
//百分制,100~90为A,89~75为B,74~60为C,60以下为D
if(grade >= 90)
{
System.out.println("A");
}
else if(grade <= 89 && grade >= 75)
{
System.out.println("B");
}
else if(grade <= 74 && grade >= 60)
{
System.out.println("C");
}
else
{
System.out.println("D");
}
switch语句
switch(表达式) {
case 值1:语句块1;
break;
case 值n:语句块n;
break;
dafault:语句块n+1;//可选
break;
}
表达式的返回值为值1,则执行语句块1,然后“break”跳出;不是则检查值2,一直到break或者语句执行完为止。所有case中的值应该是不同的语句块可以是任何合法代码
case可以有n个,后跟的值必须是常量且是byte,char,short,int,String,enum(枚举类型)其中之一。break跳出switch语句,不再执行switch中后续的代,break也可以不写,那就会一直判断执行下去,直到case完。
用例:
//输入1~7,判断今天是周几
switch(day):
{
case 1:
System.out.println("今天是周一");
break;
case 2:
System.out.println("今天是周二");
break;
case 3:
System.out.println("今天是周三");
break;
case 4:
System.out.println("今天是周四");
break;
case 5:
System.out.println("今天是周五");
break;
case 6:
System.out.println("今天是周六");
break;
case 6:
System.out.println("今天是周日");
break;
}
循环语句
循环语句分为:while,do while,for
while循环
while(条件表达式){
语句块;
}
如果条件表达式返回值为真,则执行语句块,执行完后重新判断条件表达式,以此循环,直到返回为假则循环退出。
//计算1~100所有整数和
int mun = 1,result = 0;
while(mun <= 100)
{
resule += mun;
mun++;
}
do while循环
do{
语句块;
}while(条件表达式);
先执行一次语句块,然后判断条件表达式,为真则继续循环,为假则退出。
//计算1~100所有整数和
int mun = 1,result = 0;
do{
resule += mun;
mun++;
}while(mun <= 100)
for循环
for(表达式1; 表达式2; 表达式3) {
循环体;
}
表达式1的作用一般是初始化参数,可以省略,也可以在外部(循环上边)声明;
表达式2的是循环条件,用来判断循环是否继续,与while中的条件表达式作用相同,可省略,但省略后会变成死循环;
表达式3的作用一般是更新循环变量,也可省略,写在循环体中,或者直接不写,变成死循环。
分号不能省!!!分号不能省!!!分号不能省!!!
关键字:continue,表示跳过本次循环,进行下一次循环。
执行过程:
①执行表达式1;
②执行表达式2,若返回值为真,则继续循环,若为假则跳出循环;
③若表达式2返回值为真,则执行循环体(循环体可以是任何合法代码);
④循环体执行结束,然后执行表达式3;
⑤表达式3执行结束,则回到②进行循环。
用例:
//打印出0~100中所有能被3整除,但不能被4整除的整数
for(int i = 0;i <= 100;i++)
{
if(i % 3 == 0 && i % 4 != 0)
{
System.out.println(i+",");
}
}
//也可以将i的初始化写在外面,将i++写在里面
int i = 0
for(;i <= 100;)
{
if(i % 3 == 0 && i % 4 != 0)
{
System.out.println(i+",");
}
i++;//根据所需要的情况写在相应位置,例如在这里如果写在if前面,就会少计算一个0
}
备注:如果需要死循环,使用while(true){}是最方便的。
可以试着打印出正反三角和乘法口诀来练习循环语句。