Java程序结构

顺序结构
单线程下按照代码的书写顺序一行一行向下执行
在这里插入图片描述

1.if-else 分支

1.1只有if语句

if(布尔表达式){
//满足该分支的代码块
}
if(a>b){
System.out.println(aaa);
}

1.2if-else 分支

if(布尔表达式){
//
}else{
//条件不满时执行的代码
}
在这里插入图片描述

1.3if…[else if 0…N]…else多分支语句

if(布尔表达式){
} else if(布尔表达式){
} else {
//上述表达式都不符合的情况下执行的代码
}

int num =0;
if(num>0) {
    System.out.println("正数");
} else if(num<0) {
    System.out.println("负数");
} else{
    System.out.println(0);
}

1.4分支语句的嵌套问题

分支语句的嵌套问题指的是在任意一个分支中,还可以嵌套分支
分支语句的表达式不宜过多,最多写两个以便于排查问题以及梳理思路
判断是否是闰年

int year =1000;
if(year%100==0) {
    if(year%400==0) {//此时year一定是一个100的倍数求世纪闰年
        System.out.println("闰年");
    } else {
        System.out.println("不是闰年");
    }

} else {
    if(year%4==0) {//此时的year一定是4的倍数求普通闰年
        System.out.println("闰年");
    } else {
        System.out.println("不是闰年");
    }

else自动匹配最近的if语句

1.5switch语句

switch(int|char|String|enum) {
case内容1:
满足内容1的语句;
break;
case内容2:
满足内容2的语句;
break;
case内容3:
满足内容3的语句;
break;
default:
上述所有分支都不满足的情况
判断季节

String season = "summer";
switch (season) {
    case "spring":
        System.out.println("春天");
        break;
    case "summer":
        System.out.println("夏天");
        break;
    case "autumn":
        System.out.println("秋天");
        break;
    default:
        System.out.println("冬天");
        break;

}

case不加break时,会从第一个满足的case分支开始一直向下执行直到碰到break为止或者把剩下所有分支全部执行结束

switch只有int、char、enum、String能使用,其他类型都不能使用switch分支
switch表示多重选择,使用时比较局限,没有if那么灵活

循环结构:某段代码可能会重复执行多次

1.6while循环

while(循环的终止条件) {
//循环体代码
}

循环体终止条件的表达式为true时,循环体代码就会执行直到表达式返回false,循环体代码就不会再执行

计算1-10的和

int num =1;
int ret =0;//存储最终的结果
while(num<=10) {
    ret +=num;
    num++;
}
System.out.println(ret);

计算5以内的阶乘之和

int num =1;
int ret = 0;//计算每个阶乘之和
while(num<=5) {
    int tmpret = 1;
    int tmp =1;
    while(tmp<=num) {//记录当前num的阶乘
        tmpret*=tmp;
        tmp++;
    }
    //此时tmp存储当前的阶乘
    ret+=tmpret;
    num++;
}
System.out.println(ret);

在循环中,break和continue
break表示终止当前循环
continue表示跳过本次循环,继续下一次循环。

找出100-200第一个3的倍数

int num =100;
while(num<=200) {
    if(num%3==0) {//判断num是不是3的倍数
        System.out.println(num);
        break;
    }
    num++;
}

找出100-200所有3的倍数

int num =100;
while(num<=200) {
    if(num%3!=0) {//判断num是不是3的倍数
         num++;
         continue;//走到continue下面的就不再执行,继续下一次循环
    }
    System.out.println(num);
    num++;

在这里插入图片描述
1.return;//终止当前方法的调用
2.break labal的使用

int num =100;
label:while(num<=200) {
    int a =1;
    while(a<=10) {
        if(a%3==0) {
            System.out.println(a);
            break label;//直接跳出两次循环
        }
        a++;
    }

1.7 for循环

for(初始条件;循环条件;更新循环变量) {
//循环体代码
}
1.初始化条件
2.循环终止条件
3.循环体代码
4.更新循环代码
执行顺序1234234…
1.2.3这三个条件都是可选的,可以全不写,全空

打印1到10的数字

for (int i = 1; i <=10 ; i++) {
    System.out.println(i);

}

打印5!+4!+3!+2!+1!

int ret =0;
for (int i = 1; i <=5 ; i++) {
    int tmpRet=1;//记录当前的阶乘值
    for (int j = 1; j <=i ; j++) {
        tmpRet*=j;

    }
    ret +=tmpRet;
}
System.out.println(ret);

1.8系统输出

System.out.println(msg);//输出一个字符串,带换行
System.out.print(msg);//输出一个字符串,不带换行
System.out.printf(format,msg);//格式化输出

1.9系统输入

系统输入:Scanner类
要使用Scanner类,必须要产生Scanner的对象

Scanner scanner = new Scanner(System.in);//从键盘中获取字符串
//输入

判断一个数字中9出现的次数

Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int count=0;//记录9出现的次数
while(num!=0) {
    if (num % 10 == 9) {
        count++;
    }
    num = num / 10;
}
System.out.println(count);

从键盘中循环读入数字并相加

Scanner scanner = new Scanner(System.in);
int ret =0;
while(scanner.hasNextInt()) {//从键盘中读取的整数后才会继续循环,不是整数直接结束循环
    int i = scanner.nextInt();
    ret+=i;
}
System.out.println(ret);
  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值