Java-day04-判断和循环

目录

流程控制语句

1.顺序结构

2.分支结构(if、switch)

3.循环结构(for、while、do-while)


流程控制语句

1.顺序结构

按照代码的先后顺序,从上向下运行,就是顺序结构

2.分支结构(if、switch)

if语句

//if语句第一种格式
if(关系表达式){
    语句体;
}

//if语句第二种格式
if(关系表达式){
    语句体1;   
}else{
    语句体2;
}

//if语句第三种格式
if(关系表达式){
    语句体1;   
}else if(关系表达式2){
    语句体2;
}else{
    语句体n;
}

如果语句体重只有一行代码,大括号可以不写,但是建议写上,因为可能有下面语句:

int a = 100;是两句代码:1.定义变量a   2.给变量a赋值为100

如果对布尔类型的变量进行判断,可以不用==号,而是直接写布尔变量。(避免写成=

赋值语句了)

switch语句

switch(表达式){
    case 值1:
        语句体1;
        break;
    case 值2:
        语句体2;
        break;
    case 值3.1, 值3.2,...
        语句3
        break;
    ...
    default:
        语句体n+1;
        break;
}

 注意:括号里的表达式是将要匹配的值,取值为byte、short、int、char

JDK5以后可以是枚举,JDK7以后可以是String

case后面跟的是被匹配的值,case后面只能是字面量,不能是变量,case给的值不能重复。

default的位置省略

1.省略:default可以省略,语法无问题,但是不建议省略

2.位置:default不一定卸载最下面,可以写在任意位置,但习惯卸载最下面

case穿透:语句体当中没写break,不会从break这里跳出循环而多执行部分代码

switch新特性(JDK12):(优化语句体和break)(使用冒号:替换为->加上括号

int number = 1;
switch(number) {
    //不会发生case穿透
    //大括号里只有一行代码的话,可以省略
    case 1 -> {
        System.out.println("1");
    }
    case 2 -> System.out.println("2");
    default -> {
        System.out.println("其他");
    }
}

3.循环结构(for、while、do-while)

//for循环格式
for(初始化语句; 条件判断语句; 条件控制语句){
    循环体语句;
}

//while循环格式
初始化语句;
while(条件判断语句){
    循环体语句;
    条件控制语句;
}

//do-while循环格式(先执行后判断,至少执行一次)
初始化语句;
do{
    循环体语句;
    条件控制语句;
}while(条件判断语句);

例题1:判断回文

public class Test3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        // 定义原数字
        int x;
        x = sc.nextInt();

        // 打标记
        boolean flag = true;
        // 用临时变量m记录原来x的值,便于比较。
        // 用y记录x的翻转值
        int m = x;
        int y = 0;
        // 只要m不为0就循环
        while(m != 0){
            //从右往左获取每一位数字
            int temp = m % 10;
            //修改m的值
            m /= 10;
            //将当前获取到的数字拼接到最右边
            y = y * 10 + temp;
        }
        if(y != x) flag = false;

        System.out.println(flag);
    }
}

例题2:求除数和余数(不用除法/和模%)

思路:可以用减法,减的次数等于除数,剩下的为余数

下面的代码没有考虑正负

public class Test4 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 定义被除数a和除数b
        int a, b;
        a = sc.nextInt();
        b = sc.nextInt();
        // 记录次数(等价于商)
        int cnt = 0;
        // 可以模拟下12/5或者12/4来判断循环结束条件
        while(a >= b){
            a -= b;
            cnt++;
        }
        System.out.println(cnt);
        System.out.println(a);
    }
}

昨天和今天看了好久姜萍事件,太上头了,导致昨天没学习...

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值