Java.2--类型转换-循环结构-运算符-方法--万年历2.0

​一、变量类型转换规则

[基本数据类型]
1.boolean 布尔类型不参与类型转换
2.byte,short,char 都是最小类型,三者之间不进行类型转换
3.
小类型转大类型,是自动类型转换大类型转小类型,是强制类型转换
 (byte,short,char)< int< long< float< double
4.在程序开发过程中:默认一个整数是int类型;默认小数是double类型。
5.字符串类型可以把基本类型全都转成字符串类型。

[机器语言]计算机能看懂的语言0和1
[汇编语句]一种与特定计算机架构相关的低级编程语言。在汇编语言中,每一条指令通常对应处理器的一条机器码指令。它是一种符号化的机器码,使用助记符来表示一个机器指令的操作码,同时也允许使用符号地址而非直接的内存地址。例如:doc   azx。
[高级语句] if(month==1||)===>  101010

二、循环结构

1.定义--什么是循环结构?重复完成某一任务,可以使用循环结构

2.循环结构的组成--循环条件(开始,终止,修改)+循环内容
任意一个循环结构 = 循环条件(开始条件,循环/终止条件,条件的修改)+ 循环内容(重复做的事情)

3.循环结构的分类

while:  循环次数不固定的时候
do...while[禁用]:do循环至少执行一次,但是会产生不安全问题,所以现在用的少。
for: 循环次数固定的时候
foreach :不考虑循环次数的时候

4.循环结构关键字:continue, break

continue:      停止本次循环,进行下一次循环
break:        终止循环

三、运算符

算术运算符:+  - *  /  %  ++(自身+1 )  --(自身-1 )

解析: ++   --

[当前表达式里只有a一个元素,++在前在后没区别]

例如:

int i=6;
i++;//7
++i;//7
j=i++;//j=6 i=7
j=++i;//j=7 i=6
sout(i++);//6

[当表达式里还有其他的元素成分要完成的时候]

++ 在前,先执行自身加1,在完成其他任务;
++ 在后,先完成其任务,在进行自身加1

关系运算符: >  <  >=  <=  ==  !=

--->使用关系运算符,可以获得boolean的结果(只有两种结果)

逻辑运算符: &&  ||  !  &  |

&& 和& 的区别:
&& 是逻辑运算符
& 既是逻辑运算符 也是 位运算符
===都表示”并且“

&& 表示短路并且   第一个条件是flase 不会执行第二个条件
&  非短路并且        第一个条件是flase 依旧执行第二个条件

例如:

int b=7;
if(a<5 & ++b>5){
   System.out.println("成立");
}else{
   System.out.println("不成立");
}
System.out.println(b);//b=8

int a=6;
int b=7;
if(a<5 && ++b>5){
   System.out.println("成立");
}else{
   System.out.println("不成立");
}
System.out.println(b);//b=7

赋值运算符:=  +=  -=
三元运算符:(   )%7==0?7:(   )%7 --->简写版的if-else选择结构
运算符的执行顺序:int x= (++a>5)&&(a!=9)||(1==1?3:4)
                                
算术> 关系 >逻辑 >赋值运算符

四、方法

1.定义

一段功能性的代码,能解决某一类问题----->方法是代码重用的一种手段/方式。

2.使用方法

(1)定义方法格式

[权限修饰符][方法修饰符][返回值类型]方法名([参数列表])[异常类型]{
[方法体]
[return]
}

a.权限修饰符: 

①public(公有的)
②protected(受保护的) ---允许在同一包内或子类中访问,本包下可以用,其他包的子类也可以用
③default(没有关键字)(默认的)---本包下使用
④private(私有的)---本类下使用

b.方法修饰符:

①static 静态的:提前加载、资源共享
②final  最终的:final 固定变量 表示这个值是最终的 该方法不可以被重写。

③synchronized 同步的:用来解决多线程并发问题
可以在方法声明前加上 synchronized 关键字,这样每次只有一个线程能够进入这个方法:
public class MyClass {    
private int counter = 0;    
public synchronized void incrementCounter() {       
counter++;
    }
}

④abstract 抽象的: 该方法没有方法体---用于定规则。
⑤native 本地的 :用其他编程语言实现的功能,给java程序用。

c.返回值类型:

第一种:有返回值类型,所有变量类型都可以充当返回值类型。
第二种:没有返回值类型,--->java程序中只有一种方法没有返回值类型 ,构造方法。
第三种:
返回值为空,void 代表着功能结束

d.方法名: 标识符 ----起名规则

1.选择动词

2.使用小驼峰规则

第一个单词首字母小写,其他单词首字母大写。

e.参数列表

协助开发者,一起来完成该功能的数据,方法调用时,参数顺序不可以改变

f.异常类型: Java.7--接口-内部类-异常处理-优快云博客

g.方法体:一段功能代码

h.改变程序执行顺序的关键字

程序的三种控制结构:顺序结构,选择结构,循环结构。

i.控制循环结构的关键字

①continue --只能出现循环结构里。
②break----可以出现在循环结构,也可以出现在switch选择结构里。
return-----只能出现在方法里,终止一个方法
⑤System.exit(0):----系统退出

(2)使用方法

直接调用方法名:
show();

赋值调用:int day = getDaysInMonth(month,year);
// 把month,year代入getDaysInMonth方法中,得到的数据给整型数据day

五、互换

int a=9;
int b=8;
sout(a+“,"+b)
int c=a;
a=b;
b=c;
sout(a+“,"+b)

六、取余

输入一个四位数,取出每个位数上的数值:

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个四位数字");
        int number = sc.nextInt();

        int thousands=number/1000;
        int hundreds =(number %1000)/100;
        int tens=(number % 100)/10;
        int units=(number %10)/1;
        
        System.out.println("千位: " + thousands);
        System.out.println("百位: " + hundreds);
        System.out.println("十位: " + tens);
        System.out.println("个位: " + units);

七、比较

数字比较:                   pwd==123   pwd==null
汉字/字母/符号比较:   name.equals("admin")

例如:输入用户名admin,密码123       

 //登录功能:输入用户名admin,密码123
        System.out.println("用户名:");
        Scanner sc =new Scanner(System.in);

        String name = sc.next();
        System.out.println("密码:");
        int pwd = sc.nextInt();

        if(pwd==123&&name.equals("admin")){//字符串和汉字比较用.equals
            System.out.println("登录成功");
        }else{
            System.out.println("登录失败");
        }

八、万年历2.0

package demo;

import java.util.Scanner;

public class Pang1 {

    public static void main(String[] args) {
        System.out.println("year:");
        Scanner sc = new Scanner(System.in);
        int year = sc.nextInt();
        System.out.println("month:");
        int month = sc.nextInt();
        System.out.println(year + "年" + month + "月");

        int day = getDaysInMonth(month, year);

        int sy = 0;
        for (int i = 1900; i < year; i++) {
            sy += getFlatLeapYear(i) ? 366 : 365;//true-->366;false-->365
        }

        int sm = 0;
        for (int i = 1; i < month; i++) {
            sm += getDaysInMonth(i, year);
        }

        int w = (sy + sm + 1) % 7 == 0 ? 7 : (sy + sm + 1) % 7;

        System.out.println("一\t二 \t三\t四\t五\t六\t日");
        for (int i = 1; i < w; i++) {
            System.out.print("\t");
        }
        for (int i = 1; i <= day; i++) {
            System.out.print(i + "\t");
            if ((sy + sm + i) % 7 == 0) {
                System.out.println();
            }
        }
    }
    /*
    定义一个方法:来判断平闰年
    有返回值类型:
      使用boolean类型 :刚好可以代表平 闰年的两种情况
      不需要在进一步比较
      但是有时候不可以用 两个判断
     */
    public static boolean getFlatLeapYear(int year) {//定义方法判断 平年或闰年
        boolean boo;
        if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
            boo = true;
        } else {
            boo = false;
        }
        return boo;//返回值
    }

    public static int getDaysInMonth(int month, int year) {//定义方法判断 月份天数
        int day = 0;
        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
            day = 31;
        } else if (month == 4 || month == 6 || month == 9 || month == 11) {
            day = 30;
        } else {
            day = getFlatLeapYear(year) ? 29 : 28;
        }
        return day;
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值