分支语句
if-else语句
二路分支
if (布尔表达式){
程序代码块; //布尔表达式为true,则执行
}else{
程序代码块; //布尔表达式为false,则执行
}
示例
//嵌套编法
public void judge(int x){
if(x>0){
System.out.println("整数");
}else{
if(x==0){
System.out.println("零");
}else{
System.out.println("负数");
}
}
}
//串联编法
public void judge(int x){
if(x>0){
System.out.println("整数");
}else if(x==0){
System.out.println("零");
}else if(x<0){
System.out.println("负数");
}
}
switch语句
多路分支
switch (expression){ //expression表达式的合法数据包括byte、char、short、int、String等
case value1:
statements;
break;
......
case valueN:
statements;
break;
default: //可选
statements;
break; //switch执行完default子句就会退出
}
示例
public void convertGrade(char grade){
switch(grade){
case 'A':
case 'B':
case 'C':
System.out.println("及格");
break;
case 'D':
System.out.println("不及格");
break;
default:
System.out.println("无效分数等级!");
}
}
两者区别
- switch选择结构只能处理等值条件判断情况,而且条件必须是整型变量或字符型变量。
- 多重if选择结构没有switch的限制,适合某个变量处于某个连续区间时的情况。
- 凡是可以使用switch-case的结构,都可以使用if-else;反之不成立。
循环语句
while语句
[初始化部分]
while (循环条件){
循环体、迭代部分
}
示例
//判断n是否为回文数
public boolean ispalindrom(int n){
int m=reverse(n); //计算n的倒置数,把他赋予m
if(m==n)
return true;
else
return false;
}
public int reverse(int n){
int a=0;
int b=n;
while(b!=0){
a=a*10+b%10; //每次获取b的最低位
b=b/10; //更新b的最低位
}
return a;
}
do-while语句
[初始化部分]
do{
循环体、迭代部分 //至少执行一次
}while (循环条件);
示例
//计算1+2+...+n的和
public void Sum(n){
int result=0;
int a=1;
do{
result+=a;
a++;
}while(a<=n);
System.out.println(result);
}
for语句
for(初始化部分; 循环条件; 迭代部分){ //循环迭代可在()里省略,在循环体里进行迭代也可
循环体
}
示例
/* 打印等腰三角形/金字塔
1 * 4个空格
2 *** 3个空格
3 ***** 2个空格
4 ******* 1个空格
5 *********
*/
//外层控制行数
//内层控制列数
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i * 2 - 1; j++) {
System.out.print("*");
}
System.out.println();
}
//打印乘法口诀
public void printTable(){
for(int i=1, j=1; j<=9; i++){ //逐行打印
System.out.print(i+"*"+j+"="+i*j+" ");
if(i==j){
i=0;
j++;
System.out.println(); //换行
}
}
}
跳转语句
break语句
用于do-while、while、for、switch中时,可跳出循环而执行循环后面的语句。
//在1~100间找到第一个能同时被6和8整除的数
int a=1,result=0;
for(int i=1; i<=100; i++){
if(i%6==0 && i%8==0){
result=i;
break;
}
}
System.out.println(result);
continue语句
用在循环中,跳过本次循环,执行下一次循环。
//对0~100间的奇数求和
int result=0;
for(int i=1; i<=100; i++){
if(i%2==0)
continue; //是偶数则跳过本次循环
else
result+=i;
}
System.out.println(result);