《Java从入门到精通》第四章学习笔记

第4章 流程控制

一、条件语句
1、if语句

if(布尔表达式){
    语句序列
}
/*
布尔表达式如果为true则执行if代码块中的语句序列;
反之则不执行。
*/

2、if…else语句

if(布尔表达式){
    语句序列
}
else{
    语句序列
}
/*
布尔表达式如果为true则执行if代码块中的语句序列;
反之则执行else代码块中的语句序列。
如果一段代码中有多处if..else,则每一个else总是与它上面最近的一个if相匹配。
*/
/*
创建GetTerm类,在主方法中定义变量x,从控制台输入接受赋值,并通过if...else if多分支语句判断x的值决定输出结果。
*/
import java.util.Scanner;
public class GetTerm {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int x=scan.nextInt();
        if(x>1000){
            System.out.println("x的值大于1000");
        }else if(x>500){
            System.out.println("x的值大于500,但小于1000");
        }else if(x>100){
            System.out.println("x的值大于100,但小于500");
        }else {
            System.out.println("x的值小于100");
        }
        scan.close();
    }
}

3、switch多分支语句

switch(表达式){   //表达式的值必须是整型或者字符型
case 常量值1:      //这里常量值必须与表达式的值对应,下同
    语句序列1
    break;   //跳出switch语句块,如没有则会继续执行下一句
case 常量值2:
    语句序列2
    break;
...
default:   //当上述各case的常量值没有匹配时候则从此处执行
     语句序列;
     break;
}   
import java.util.Scanner;
public class Switch_Example {
    public static void main(String[] args){
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入你的姓名:");
        String name=scan.nextLine();
        System.out.println("请输入你的专业编号(0~9):");
        int majorLanguage=scan.nextInt();

        switch(majorLanguage){
        case 0:
        case 1:
        case 2:
            System.out.println("恭喜你,"+name+"你被分配到办公室");
            break;
        case 3:
        case 4:
        case 5:
        case 6:
            System.out.println("恭喜你,"+name+"你被分配到总工办");
            break;
        case 7:
        case 8:
        case 9:
            System.out.println("恭喜你,"+name+"你被分配到财务处");
            break;
        default:
            System.out.println("抱歉,你未被录用");     
        }
        scan.close();
    }
}

二、循环语句
1、while语句

while(条件表达式){   //条件表达式必须为布尔类型
  语句序列;          //条件表达式为true则执行该语句序列
}                 //否则退出循环

2、do…while语句

do {
    语句序列;
}while(条件表达式)  
/*与while语句的区别可以从顺序上理解出,即便条件表达式为false,也会执行一次do代码块里的指令*/

3、for语句

for(表达式1;表达式2;表达式3){
    语句序列;
}
/*
表达式1:初始化工作
表达式2:为布尔类型,用于判断循环条件
表达式3:改变循环条件判断参数
执行流程:先通过表达式1进行初始化设置工作,再判断表达式2,如果为true则执行语句序列,再通过表达式3改变循环条件判断参数;进入第二次循环时候先判断表达式2,如果为true则执行语句序列,再通过表达式3改变循环条件判断参数;直至某次判断表达式2false则跳出循环。
*/
//用for循环输出九九乘法表
public class MultiTable {
    public static void main(String[] args){
        for(int i=1;i<10;i++){
            for(int j=1;j<i+1;j++){
                System.out.println(j+"*"+i+"="+j*i+" ");
            }
            System.out.println();  //换行
        }
    }
}

4、foreach语句

for(元素变量x:遍历对象obj){
     语句序列(一般会对x有操作)
}
/*foreachfor语句的特殊简化格式,从上述示例代码可以看出foreach并不是所用的关键字,而是习惯上对这种循环的称谓。*/
//使用foreach语句读取一位整型数组各元素
public class Repetition {
    public static void main(String[] args){
        int arr[]={1,3,4,7,8,10};
        System.out.println("一维数组中各元素分别为:");
        for(int x:arr){
            System.out.println(x+"\t");
        }
    }
}

三、跳转语句
1、break语句
break只可以用在switch\for\while\do..while循环语句中,用于强行退出整个循环体。
2、continue语句
continue只能用在for\while\do…while循环语句中,用于直接跳出当前循环进入下一次循环。

//计算1~100各偶数之和
public class ContinueDemo {
    public static void main(String[] args){
        for(int sum=0,i=0;i<101;i++){
            if(i%2==0){
                sum+=i;
            }else {
                continue;
            }
            if(i==100){
                System.out.println("0~100内偶数之和是"+sum);
            }
        }
    }
}
public class CatchBird {
    public static void main(String[] args){
        String[] birdArray=new String[]{"麻雀","鸽子","百灵","布谷","老鹰","鹦鹉","老鹰","翠鸟","斑鸠","老鹰","黄鹂"};
        int laoYingNumber=0;
        for(String birdString:birdArray){
            if(birdString.equals("老鹰")){
                System.out.println("一只老鹰已经被我抓起来了");
                laoYingNumber++;
                continue;
            }
            System.out.println("发现了一只"+birdString);     //这里当然也可以用if-else
        }
        System.out.println("总共抓住了"+laoYingNumber+"只老鹰");
    }
}
//计算1+1/2!+1/3!+...+1/20!的值
public class x1 {
    public static void main(String[] args){
        double sum=0;
        long a=1L;
        for(long i=1L;i<21;i++){
            for(long j=1L;j<=i;j++){
                a=a*j;              
            }
            sum+=1/(double)a;          //强制浮点运算
            a=(long)1;                 //重置为长整型数值
            System.out.println(sum);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值