Java编程基础阶段笔记 day04 Java基础语法(下)

简介: day04 Java基础语法 (下)笔记Notes要点switch-case语句注意switch-case题目(switchTest5)循环执行顺序if-else 实现3个整数排序String字符串比较循环四要素打印九九乘法表特殊关键字continue、breakswitch(表达式) 表达式里仅支持 byte、short、char、int、枚举、String(jdk1.

day04 Java基础语法 (下)

笔记Notes要点

switch-case语句注意

switch-case题目(switchTest5)

循环执行顺序

if-else 实现3个整数排序

String字符串比较

循环四要素

打印九九乘法表

特殊关键字continue、break

switch(表达式) 表达式里仅支持 byte、short、char、int、枚举、String(jdk1.7后)

switch(表达式){

    case 常量1:

        执行语句1;

        break;

    case 常量2:

        执行语句2;

        break;

    ......

    default:

        执行语句n;

        break;

    }

case 后面只能跟常量,default是可选的。如果都没有匹配成功则执行default中的执行语句。default的位置是灵活的。

switch-case和if-else可以替换,switch-case效率高一些

/*

从键盘分别输入年、月、日,判断这一天是当年的第几天

注:判断一年是否是闰年的标准:

   1)可以被4整除,但不可被100整除

或

   2)可以被400整除

*/

import java.util.Scanner;

public class SwitchTest5{

public static void main(String[] args){

    //1.读取数据

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入年份");

    int year = sc.nextInt();

    System.out.println("请输入月份");

    int month = sc.nextInt();

    System.out.println("请输入日期");

    int day = sc.nextInt();

    int sumDay = 0; //用来统计当年的总天数

    //2.统计天数

    switch(month){

    case 4:

        sumDay += 31;

    case 3:

        //判断当年是否是闰年

        if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)){

            sumDay += 29;

        }else{

            sumDay += 28;

        }

    case 2:

        sumDay  += 31;

    case 1:

        sumDay += day;

    }

    //3.输出

    System.out.println(year + "年" + month + "月" + day + "日是当年的第" + sumDay + "天");

}

}

/*

编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,

对它们进行排序(使用 if-else if-else),并且从小到大输出。

*/

import java.util.Scanner;

public class IfTest

{

public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入三个数字");

    int num1,num2,num3;

    num1 = sc.nextInt();

    num2 = sc.nextInt();

    num3 = sc.nextInt();

    if(num1>num2){

        if(num3>num1){//num3最大

            System.out.println("小到大:"+ num2 +" "+ num1 +" "+ num3);

        }else if(num3<num2){//num3最小

            System.out.print("小到大:"+ num3 + " " + num2 + " " + num1);

        }else{

            System.out.println("小到大:"+ num2 + " " + num3 + " " + num1);

        }

    }else{//num1<num2

        if(num3>num2){//num3最大

            System.out.println("小到大:"+ num1 + " "+ num2 + " "+ num3);

        }else if(num3<num1){//num2最大

            System.out.println("小到大:"+ num3 + " " + num1 + " " + num2);

        }else{

            System.out.println("小到大:"+ num1 + " " + num3 + " " + num2);

        }

    }

}

}

String字符串比较

String str = new String("帅");

    //判断帅不帅

    System.out.println("帅" ==  str); //这样不能比字符串的内容

    boolean handsome = "帅".equals(str); //比较的是字符串的内容 - 如果内容相同返回true否则返回false

switch使用小技巧

对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”

switch(score / 60){

    

    case 0:

        System.out.println("不合格");

        break;

    case 1:

        System.out.println("合格");

        break;

编写程序:输入月,日,输出第几天

/*

  1. 编写程序:从键盘上输入2019年的“month”和“day”,要求通过程序输出输入的日期为2019年的第几天。

*/

import java.util.Scanner;

public class SwitchTest4{

public static void main(String[] args){



    //1.读取数据

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入月份");

    int month = sc.nextInt();

    System.out.println("请输入日期");

    int day = sc.nextInt();
    int sumDay = 0; //用来统计当年的总天数



    //2.统计天数

    switch(month){

    /*

    case 1:

        sumDay = day;

        break;

    case 2:

        sumDay = day + 31;

        break;

    case 3:

        sumDay = day + 31 + 28;

        break;

    case 4:

        sumDay = day + 31 + 28 + 31;

        break;

    */
    case 4:

        sumDay += 31;

        

    case 3:

        sumDay += 28; //赋值和+=完全不一样。sumDay += 28 : 除了sumDay原来的天数再额外加上28

        

    case 2:

        sumDay  += 31; // sumDay = sumDay + 31

        

    case 1:

        sumDay += day;



    }
    //3.输出

    System.out.println("2019年" + month + "月" + day + "日是当年的第" + sumDay + "天");
}

}

编写程序:输入年,月,日,输出第几天

/*

从键盘分别输入年、月、日,判断这一天是当年的第几天

注:判断一年是否是闰年的标准:

   1)可以被4整除,但不可被100整除

或

   2)可以被400整除

*/

import java.util.Scanner;

public class SwitchTest4

{

public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入年份:");

    int year = sc.nextInt();

    System.out.println("请输入月份:");

    int month = sc.nextInt();

    System.out.println("请输入天数:");

    int day = sc.nextInt();

    int sumDay = 0;

    switch(month){

        case 12:

            sumDay += 30;

        case 11:

            sumDay += 31;

        case 10:

            sumDay += 30;

        case 9:

            sumDay += 31;

        case 8:

            sumDay += 31;

        case 7:

            sumDay += 30;

        case 6:

            sumDay += 31;

        case 5:

            sumDay += 30;

        case 4:

            sumDay += 31;

        case 3:

            // 28或 29

            if((year%4==0&&year%100!=0)||year % 400 ==0){//闰年

                sumDay += 29;

            }else{

                sumDay += 28;

            }

        case 2:

            sumDay += 31;

        case 1:

            sumDay += day;

            break;

    }

    System.out.println(year+"年" + month + "月" + day + "日是当年的第" + sumDay + "天");

}

}

循环四要素

循环的四个部分:

    1.初始化条件

    2.循环条件

    3.循环体

    4.迭代条件

打印九九乘法表

/*

1*1=1

12=2 22=4

13=3 23=6 3*3=9

打印九九乘法表

*/

public class c99

{

public static void main(String[] args){

    int i,j;

    for(i=1;i<=9;i++){//9行

        for(j=1;j<=i;j++){

            System.out.print(j + "*" +i+" = "+ i*j +" ");

        }

        System.out.println();

    }

}

}

特殊关键字continue、break

break用于 switch-case语句与循环结构中,表示结束当前case语句,结束循环语句

continue,用于 循环结构 表示结束当此循环。

在嵌套循环中break结束的包含该语句的循环语句,对外层循环无作用

在嵌套循环中continue跳出的是包含他的循环语句的当次循环,不跳出

嵌套循环中如何使用内部循环的break结束外层循环

可以给循环命名,break + 循环名字

总结Summary

if-else实现三个整数排序

打印九九乘法表

break,continue使用注意事项

目录
相关文章
|
2天前
|
设计模式 安全 Java
Java编程中的单例模式:理解与实践
【10月更文挑战第31天】在Java的世界里,单例模式是一种优雅的解决方案,它确保一个类只有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的实现方式、使用场景及其优缺点,同时提供代码示例以加深理解。无论你是Java新手还是有经验的开发者,掌握单例模式都将是你技能库中的宝贵财富。
|
4天前
|
Java API Apache
Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
【10月更文挑战第29天】Java编程如何读取Word文档里的Excel表格,并在保存文本内容时保留表格的样式?
24 5
|
2天前
|
存储 设计模式 分布式计算
Java中的多线程编程:并发与并行的深度解析####
在当今软件开发领域,多线程编程已成为提升应用性能、响应速度及资源利用率的关键手段之一。本文将深入探讨Java平台上的多线程机制,从基础概念到高级应用,全面解析并发与并行编程的核心理念、实现方式及其在实际项目中的应用策略。不同于常规摘要的简洁概述,本文旨在通过详尽的技术剖析,为读者构建一个系统化的多线程知识框架,辅以生动实例,让抽象概念具体化,复杂问题简单化。 ####
|
1天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
3天前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
19 4
|
3天前
|
消息中间件 供应链 Java
掌握Java多线程编程的艺术
【10月更文挑战第29天】 在当今软件开发领域,多线程编程已成为提升应用性能和响应速度的关键手段之一。本文旨在深入探讨Java多线程编程的核心技术、常见问题以及最佳实践,通过实际案例分析,帮助读者理解并掌握如何在Java应用中高效地使用多线程。不同于常规的技术总结,本文将结合作者多年的实践经验,以故事化的方式讲述多线程编程的魅力与挑战,旨在为读者提供一种全新的学习视角。
24 3
|
2天前
|
设计模式 安全 Java
Java编程中的单例模式深入解析
【10月更文挑战第31天】在编程世界中,设计模式就像是建筑中的蓝图,它们定义了解决常见问题的最佳实践。本文将通过浅显易懂的语言带你深入了解Java中广泛应用的单例模式,并展示如何实现它。
|
4天前
|
安全 Java 调度
Java中的多线程编程入门
【10月更文挑战第29天】在Java的世界中,多线程就像是一场精心编排的交响乐。每个线程都是乐团中的一个乐手,他们各自演奏着自己的部分,却又和谐地共同完成整场演出。本文将带你走进Java多线程的世界,让你从零基础到能够编写基本的多线程程序。
17 1
|
11天前
|
监控 安全 Java
在 Java 中使用线程池监控以及动态调整线程池时需要注意什么?
【10月更文挑战第22天】在进行线程池的监控和动态调整时,要综合考虑多方面的因素,谨慎操作,以确保线程池能够高效、稳定地运行,满足业务的需求。
88 38
|
8天前
|
安全 Java
java 中 i++ 到底是否线程安全?
本文通过实例探讨了 `i++` 在多线程环境下的线程安全性问题。首先,使用 100 个线程分别执行 10000 次 `i++` 操作,发现最终结果小于预期的 1000000,证明 `i++` 是线程不安全的。接着,介绍了两种解决方法:使用 `synchronized` 关键字加锁和使用 `AtomicInteger` 类。其中,`AtomicInteger` 通过 `CAS` 操作实现了高效的线程安全。最后,通过分析字节码和源码,解释了 `i++` 为何线程不安全以及 `AtomicInteger` 如何保证线程安全。
java 中 i++ 到底是否线程安全?