[JavaSE]逻辑控制

顺序结构

按照代码书写的顺序一行一行执行

分支结构

if语句

语法格式1

  if(布尔表达式){
            //语句
        }

语法格式2

if(布尔表达式){
            //语句1
        }else{
        //语句2
}

语法格式3

if(布尔表达式1){
            //语句1
}else if(布尔表达式2){
        //语句2
}else{
//语句3
}
例题

判断奇偶

public class J831_1 {
    public static void main(String[] args) {
        int x = 3;
        if(x%2==0){
            System.out.println(x+"是偶数");
        }else{
            System.out.println(x+"是奇数");
        }
    }
}

判断数的正负 

public class J831_2 {
    public static void main(String[] args) {
        int x = 0;
        if(x==0){
            System.out.println(x+"等于0");
        }else if(x>0){
            System.out.println(x+"是正数");
        }else{
            System.out.println(x+"是负数");
        }
    }
}

判断是否是闰年

import java.util.Scanner;//类似C语言中的导入头文件,java中叫导入包
public class J831_3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int year = scanner.nextInt();//读取整数用nextInt

        if((year%4==0&&year%100!=0)||(year%400==0)){//能被4整除且不能被100整除,或者能被400整除
            System.out.println("是闰年");
        }else{
            System.out.println("不是闰年");
        }

        //方法二
        int year3 = 2000;
        if(year3 % 100 == 0){
            if(year3 % 400 ==0){
                System.out.println("是闰年");
            }else{
                System.out.println("不是闰年");
            }
        }else{
            if(year3 % 4 == 0){
                System.out.println("是闰年");
            }else{
                System.out.println("不是闰年");
            }
        }
    }


}

注意

代码风格,分号问题(不要乱加分号),垂悬else问题(else跟距离最近的if匹配),加大括号

switch语句

基本语法

public class J831_4 {
    public static void main(String[] args) {
        int a = 1;
        switch (a) {
            case 1: {
                System.out.println(1);
                break;
            }
            case 2: {
                System.out.println(2);
                break;
            }
            case 3: {
                System.out.println(3);
                break;
            }
            default: {
                System.out.println("输入错误");
                break;
            }
        }
    }
}

注意

多个case后的常量值不可以重复

switch的括号内只能是以下类型的表达式:

基本类型:byte,char,short,int

引用类型:String常量串,枚举类型

不支持float,double,long,boolean,主要来说是语法上不支持

break不要遗漏,switch不能表达复杂的条件,支持嵌套,但是很丑

循环结构

while循环

基本语法结构

public class J831_5 {
    public static void main(String[] args) {
        int a = 1;
        while( a<=10){
            System.out.println(a);
            a++;
        }
    }
}

相关习题

public class J831_5 {
    public static void main(String[] args) {

        //打印1—10的数字
        int a = 1;//循环的初始条件
        while( a<=10){//判断条件
            System.out.println(a);
            a++;//步进
        }

        //计算1-100的和,奇数的和,偶数的和
        int n = 1;//偶数n从2开始
        int sum = 0;
        while( n <= 100){
            sum += n;
            n++;//奇数偶数n+=2;
        }
        System.out.println(sum);

        //计算5的阶乘
        int x = 1;
        int mul = 1;
        while( x <= 5){
            mul = mul*x;
            x++;
        }
        System.out.println(mul);

        //计算1!+2!+3!+4!+5!
        //方法一
        int num = 1;
        sum = 0;
        mul = 1;
        while(num <= 5){
            mul *= num;
            sum += mul;
            num++;

        }
        System.out.println(sum);

        //方法二,循环嵌套
        int i = 1;
        sum = 0;
        while(i <= 5){
            n = 1;
            int ret = 1;
            while(n <= i){
                ret *= n;
                n++;
            }
            sum += ret;
            i++;
        }
        System.out.println(sum);
        
    }
}

注意

和if类似,注意加{},注意不要多写分号

break语句

让循环结束

例题
public class J831_6 {
    public static void main(String[] args) {
        //找到100-200中第一个3的倍数
        int n = 100;
        while(n <= 200){
            if(n % 3 == 0){
                System.out.println(n);
                break;//结束距离最近的循环结构
            }
            n++;
        }
    }
}

continue语句

continue的功能是跳过这次循环,立即进入下次循环

例题
 //找到100-200中所有3的倍数
        n = 100;
        int count = 0;
        while(n <= 200){
            if(n % 3 == 0){
                System.out.println(n);
                count ++;
            }
            n++;
        }
        System.out.println(count);

        //使用continue语句

            while(n <= 200){
                if(n % 3 != 0){
                    n++;//注意这个地方也要n++,否则也会进入死循环
                    continue;
                }
                System.out.println(n);
                n++;
                count ++;
            }
        System.out.println(count);

for循环

基本语法与C语言类似

例题
public class J901_1 {
    public static void main(String[] args) {

        //打印1-10的数字
        int i = 0;
        for(i = 0;i <= 10;i ++){
            System.out.println(i);
        }

        //计算1-100的和
        i = 1;
        int sum = 0;
        for(i = 1;i <= 100;i ++){
            sum += i;
        }
        System.out.println(sum);

        //计算5的阶乘
        i = 0;
        int mul = 1;
        for(i = 1;i <= 5;i ++){
            mul *= i;
        }
        System.out.println(mul);

        //计算1!+2!+3!+4!+5!
        int ret = 0;
        mul = 1;
        for(i = 1;i < 6; i ++){
            mul *= i;
            ret += mul;
        }
        System.out.println(ret);

    }
}

do while循环

先执行再判断

注意

do while循环最后分号不要忘记

不推荐使用

输出

public class J901_2 {
    public static void main(String[] args) {
        System.out.println("输出切换行");
        System.out.print("输出不换行");
        System.out.printf("%s\n","输出格式化");//和C语言基本一致
    }
}

格式化字符串

输入

使用Scanner读取字符串/整数/浮点数 

import java.util.Scanner; // 需要导入 util 包
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = sc.nextLine();
System.out.println("请输入你的年龄:");
int age = sc.nextInt();
System.out.println("请输入你的工资:");
float salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
sc.close(); // 注意, 要记得调用关闭方法
// 执行结果
请输入你的姓名:
张三
请输入你的年龄:
18
请输入你的工资:
1000
你的信息如下:
姓名: 张三
年龄:18
工资:1000.0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值