考研失败, 学点Java打小工——Day3

1 编码规范------卫语句

表达异常分支时,少用if-else方式。
**  比如成绩判断中对于非法输入的处理:**

java 复制代码
    /*
    >=90   <=100      优秀
    >=80    <90       良好
    >=70    <80       一般
    >=60    <70      及格
    <60              不及格
    */
    @Test
    public void test2() {
        //int score = 78;
        //通过Scanner可以实现从控制台输入信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = scanner.nextInt();
        if(score < 0 || score > 100) {
        	System.out.println("非法输入");
        } else if (score >= 90 && score <= 100) {
            System.out.println("优秀");
        } else if (score >= 80 && score < 90) {
            System.out.println("良好");
        } else if (score >= 70 && score < 80) {
            System.out.println("一般");
        } else if (score >= 60 && score < 70) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
    }


**  修改后:**

java 复制代码
    @Test
    public void test2() {
        //通过Scanner可以实现从控制台输入信息
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = scanner.nextInt();
        //卫语句1
        if (score < 0 || score > 0) {//异常和正常 要分开
            System.out.println("Invalid input!");
            //后面的代码不再执行
            return;
        }
        //卫语句2...

        //合法输入
        if (score >= 90 && score <= 100) {
            System.out.println("优秀");
        } else if (score >= 80 && score < 90) {
            System.out.println("良好");
        } else if (score >= 70 && score < 80) {
            System.out.println("一般");
        } else if (score >= 60 && score < 70) {
            System.out.println("及格");
        } else {
            System.out.println("不及格");
        }
    }

2 循环控制语句(接Day2)

2.2 continue、break

还是跟C语法相差无几,放个demo了事

continue:跳出本次循环,继续下一次循环

break:跳出离他最近的那层循环

java 复制代码
@Test//结果: 1 2 4 5
public void test44() {
    for (int i = 1; i <= 5; i++) {
        if (i == 3) {
            continue;
        }
        System.out.println(i);
    }
}

@Test//结果: 1 2
public void test45() {
    for (int i = 1; i <= 5; i++) {
        if (i == 3) {
            break;
        }
        System.out.println(i);
    }
}

@Test//
public void test46() {
    //i,j,k
    for (int i = 1; i <= 5; i++) {
        System.out.println("i: " + i);
        for (int j = 1; j <= 5; j++) {
            if (j == 3) {
                break;
            }
            System.out.println("j: " + j);
        }
    }
}

2.3 双重for循环

这个也很简单,

双重for循环:
   外层循环控制行数,数一下有几行就能确定外层循环。
   内层循环控制列数,这一行打印多少个,到底要打印多少个要找出和当前行之间的一个关系。

还有一些打印金字塔, 各种三角形的题,统一放到下一篇作业博客吧.

2.4 Switch

这部分当初学的时候没感觉有啥特别的,但是同种情况的case可以合并这个操作是真的有点没记起来,温故知新了。

java 复制代码
    import com.sdust.day2.*;
	
	@Test
    //月份 天数
    public void test2() {
        Scanner scanner = new Scanner(System.in);
        Homework day2 = new Homework();
        System.out.println("please input month: ");
        int month = scanner.nextInt();
        if (month < 1 || month > 12) {
            System.out.println("invalid month");
            return;
        }
        switch (month) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                System.out.println("31days");
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                System.out.println("30days");
                break;
            case 2:
                System.out.println("please input year: ");
                int year = scanner.nextInt();
                if (day2.judgeLeapYear(year)) {
                    System.out.println("29days");
                } else {
                    System.out.println("28days");
                }
            default:
                System.out.println("default");
                break;
        }
    }

昨天写了几个作业题,包括一个闰年判断的题,于是在今天写这部分代码对闰年进行特判的时候心血来潮想直接调用昨天的代码。先是要导包,仿照Scanner输入的形式写了一下,发现还真行,嗯,基础的Java也就那么回事嘛~

相关推荐
麦兜*41 分钟前
Spring Boot 企业级动态权限全栈深度解决方案,设计思路,代码分析
java·spring boot·后端·spring·spring cloud·性能优化·springcloud
序属秋秋秋42 分钟前
《C++初阶之内存管理》【内存分布 + operator new/delete + 定位new】
开发语言·c++·笔记·学习
ruan1145142 小时前
MySQL4种隔离级别
java·开发语言·mysql
quant_19863 小时前
R语言如何接入实时行情接口
开发语言·经验分享·笔记·python·websocket·金融·r语言
Hellyc6 小时前
基于模板设计模式开发优惠券推送功能以及对过期优惠卷进行定时清理
java·数据库·设计模式·rocketmq
lifallen6 小时前
Paimon LSM Tree Compaction 策略
java·大数据·数据结构·数据库·算法·lsm-tree
hdsoft_huge6 小时前
SpringBoot 与 JPA 整合全解析:架构优势、应用场景、集成指南与最佳实践
java·spring boot·架构
百锦再7 小时前
详细解析 .NET 依赖注入的三种生命周期模式
java·开发语言·.net·di·注入·模式·依赖
程序员的世界你不懂7 小时前
基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(2)对框架加入业务逻辑层
java·selenium·maven
风吹落叶花飘荡7 小时前
2025 Next.js项目提前编译并在服务器
服务器·开发语言·javascript