考研失败, 学点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也就那么回事嘛~

相关推荐
moxiaoran575313 小时前
Go语言并发处理
开发语言·后端·golang
小旭952713 小时前
【Java 基础】泛型<T>
java·开发语言·intellij-idea
她说..13 小时前
FIND_IN_SET()方法
xml·java·spring boot
Tony Bai13 小时前
AI 时代,Go 语言会“失宠”还是“封神”?—— GopherCon 2025 圆桌深度复盘
开发语言·人工智能·后端·golang
花间相见13 小时前
【JAVA开发】—— Maven核心用法与实战指南
java·python·maven
爱吃的强哥13 小时前
Springboot 使用 SSE推送消息到客户端(Electron)
java·spring boot·electron
Elias不吃糖13 小时前
Java Stream 流(Stream API)详细讲解
java·stream·
寻星探路13 小时前
【全景指南】JavaEE 深度解析:从 Jakarta EE 演进、B/S 架构到 SSM 框架群实战
java·开发语言·人工智能·spring boot·ai·架构·java-ee
七夜zippoe13 小时前
微服务架构演进实战 从单体到微服务的拆分原则与DDD入门
java·spring cloud·微服务·架构·ddd·绞杀者策略
tc&13 小时前
新虚拟机安装 Go 环境:问题总结与解决方案
开发语言·后端·golang