Java学习第二天

目录

1、运算符

2、位运算符

3、程序流程控制结构

4、嵌套的循环结构

5、字符串类

6、Java的注释

7、数组

堆栈

1、运算符

1、赋值运算符:=
2、算术运算符:
+ - * / % ++ --
注意:
    1、整数相除,舍弃余数
    2、浮点数相除,保留余数
    3、前置++,先将变量自增1,再参与表达式运算
    4、后置++,先取出变量的值参与表达式运算,然后再自增1
3、关系运算符:结果是一个boolean
>
<
>=
<=
==
!=
<>

字符串存储的原理:
1、字符串常量(使用双引号创建的字符串对象)存储在常量池中
2、使用new关键字创建的字符串对象,会分配新的存储空间
3、所以要比较字符串是否相等(字符串的值是否相等),不能使用==来比较
    从控制台(键盘)动态录入的字符串对象,跟new一个字符串对象同一个原理
4、字符串的比较要使用其方法:equals()

4、逻辑运算符
&    逻辑与
&&    短路与
|    逻辑或
||    短路或
!    逻辑非:

知识点:java生成伪随机数的两种方式
1、Math.random():生成的随机数大于等于0,小于1--左闭右开
2、Random.nextInt(num):生成的随机数,大于等于0,小于num--左闭右开
        //第一种方式
        for(int i = 0; i < 100; i++) {
            double random = Math.random();
            System.out.println((int)(random * 3)+1);
        }
        System.out.println("==========");
        //第二种方式
        Random random = new Random();
        //调用其方法,传递种子数,生成的随机数就是大于等于0,小于种子数
        for(int i = 0; i < 100; i++) {
            int num = random.nextInt(3)+1;
            System.out.println(num);
  }

2、位运算符

磁盘容量:
1b=1byte 1字节 = 8位 8bit
1024b = 1kb 千字节 = 1mb
1024m = 1g
1024g = 1t
二进制 :bit 比特 0 1
十进制            二进制
1                0000 0001
2                0000 0010
3                0000 0011
4                0000 0100
5                0000 0101
6                0000 0110
7                0000 0111
8                0000 1000
转换算法:短除法
比如,十进制--129

位运算符:
&    位与
|    位或
^    异或
<<    左位移
>>    右位移
>>>    无符号位移
二进制:位与运算,相同位都为1结果为1,或者为0
    00000110    
    00000011
&位与-------------
    00000010
    
    位或运算,相同位只要有一个1,结果就为1
    00000110    
    00000011
|位或-------------    
    00000111
    
    异或运算,相同位不同(一个为1,一个为0)结果为1,否则为0
    00000110    
    00000011
^异或-------------
    00000101
    
左位移:十进制 3 的二进制表示
        0000 0011
        左移1位,最左边丢弃一个0,最右边补一个0
        0000 0110 十进制 6, =3x2的一次方
        左移2位,最左边丢弃2个0,最右边补2个0
        0000 1100 十进制 12, =3x2的两次方
       

3、程序流程控制结构

程序执行的默认流程:
从上到下,从左到右
分支结构
    if分支结构
    switch分支结构
循环结构
    for循环结构
    while循环结构
    dowhile循环结构
1、简单if分支结构
语法:
if(条件表达式){
    //if语句块
}
2、if-else分支结构
语法:
if(条件表达式){
    //语句块1
}else{
    //语句块2
}
3、多重的if-else分支结构

4、嵌套的if-else结构

5-switch分支结构

        Scanner input = new Scanner(System.in);
        System.out.println("请输入小明参加计算机比赛的名次:");
        //int position = input.nextInt();
        String position = input.next();
        /*
         * 1、条件表达式的类型:整形及其兼容类型,String(java7及以上),enum(枚举)
         * 2、break:用于退出整个switch结构,是否省略要看业务逻辑
         * 3、case的顺序能不能打乱?能,但是不建议
         */
        switch(position) {
        case "1":
            System.out.println("奖励:笔记本一台");
            break;
        case "2":
            System.out.println("奖励:ipad一台");
            break;
        case "3":
            System.out.println("奖励:移动硬盘一个");
            break;
        default:
            System.out.println("没有奖励!");
            break;
        }
        /*
         * if(position == 1) { System.out.println("奖励:笔记本一台"); }else if(position == 2) {
         * System.out.println("奖励:ipad一台"); }else if(position == 3) {
         * System.out.println("奖励:移动硬盘一个"); }else { System.out.println("没有奖励!"); }
         */

练习:
使用switch输出:周135写代码,24看电影,67休息

注意:
1、switch一般用于等值比较的分支
2、所有的switch结构都可以转换为if-else结构
3、if-else结构不一定能转换为switch,比如:范围分支
6、for循环结构
语法:
for(循环变量的初始化;循环条件;循环条件的改变){
    //循环体
}
执行步骤:
1、执行表达式1:进行循环变量的初始化
2、执行表达式2,进行循环的准入判断
3、执行循环体,打印i-->1
4、执行表达式3,将循环条件改变:i++ -->2
重复:2、3、4的步骤

程序调试(debug):
1步:设置断点
2步:调试执行
3步:观察程序执行的路径及程序变量的改变
4步:解决bug

练习:
使用for循环输出1到100中的偶数
7、两个关键字:
break:
    1、用于跳出switch结构
    2、用于跳出循环结构
continue:
    用于加速循环,遇到continue关键字,程序跳过本轮循环的余下代码,进入下一轮循环
8、while循环结构:
语法:
while(循环条件判断){
    //循环体
}

注意:
while循环与for循环的特点:
先判断,再循环
如果条件不满足,则一次循环都不执行
9、dowhile循环:
语法:
do{
    //循环体
}while(循环条件);

特点:
先执行,再判断
不管条件是否满足,至少执行一次循环

练习:使用学过的知识,完成石头剪刀布游戏,要求:
1、可以玩多局
2、计算每局的得分,赢的一方加1分
3、统计总局数
4、游戏结束时,打印输出:总局数、双方的得分、最终的输赢
 

4、嵌套的循环结构

1、需求:使用双重的for循环打印99乘法表
1X1=1  
2X1=2  2X2=4  
3X1=3  3X2=6  3X3=9  
4X1=4  4X2=8  4X3=12  4X4=16  
5X1=5  5X2=10  5X3=15  5X4=20  5X5=25  
6X1=6  6X2=12  6X3=18  6X4=24  6X5=30  6X6=36  
7X1=7  7X2=14  7X3=21  7X4=28  7X5=35  7X6=42  7X7=49  
8X1=8  8X2=16  8X3=24  8X4=32  8X5=40  8X6=48  8X7=56  8X8=64  
9X1=9  9X2=18  9X3=27  9X4=36  9X5=45  9X6=54  9X7=63  9X8=72  9X9=81 
2、需求:控制台录入打印的行数,打印*矩形
请输入打印的矩形的行数:8
********
********
********
********
********
********
********
********

3、需求:控制台录入打印的行数,打印*直角三角形
请输入打印的直角三角形的行数:5
*
***
*****
*******
*********
4、作业
需求:控制台录入打印的行数,打印*菱形
请输入打印的菱形的行数:5
    *
   ***
  *****
   ***
    *


5、字符串类

字符串类:
1、认识String类
A、位置:java.lang.String,使用时不需要导包
B、是一个final类,不能被继承,不能有后代
C、常用方法
    什么是方法?方法就是一个封装了特定功能代码的一种结构
    方法怎么使用?使用对象名.方法名()调用
    charAt(int index),返回给定下标的字符
    length()  返回字符串的长度
    contains(CharSequence cs)判断字符串中是否包含给定的字符序列
    startsWith(String str) 判断字符串是否以给定的子串开头
    endsWith(String str) 判断字符串是否以给定的子串结尾
    replace(char oldChar,char newChar)
    indexOf()
    lastIndexOf()
    split(String regex)
练习:从控制台录入一段文字,反转输出,比如:
12345  --->  54321
野火烧不尽,春风吹又生  --->
 

6、Java的注释

java有三种注释:
单行注释    //
多行注释    /* */
文档注释    /** */
 

7、数组

回顾:
1、java中是如何将程序的数据存储在计算机系统中的?
通过变量
但是,一个变量只能存储一个数据
能不能使用一个变量来存储多个数据?能-->数组
2、什么是数组?
数组就是一种能存储多个相同数据类型数据的变量
3、数组的使用步骤:
A、数组的声明:String []arrNames;
B、分配空间:arrNames = new String[30];
C、给数组赋值:arrNames[0]="尤嘉";
D、使用
4、数组的存储原理:
A、数组的空间是连续的
B、数组的第一个元素空间的下标是0
C、数组的最后一个元素空间的下标是其大小-1
D、数组一旦分配空间后,所有元素都具有默认值--是元素数据类型的默认值
    String  --> null
    int     -->  0
    double  --> 0.0
    boolean --> false
5、数组使用的简化步骤
A、数组声明的两种方式:
    String []names;
    String names[];
B、声明和分配空间合并:
     1步:String []names;
     2步:names = new String[5];
     2步合并:String []names = new String[5];
C、声明、分配空间、赋值合并:
    int []nums1 = new int[]{1,3,5,7,9};
    int []nums2 = {10,20,30,40,50};
    
错误的合并示例:
String []names = new String[3];
names = {"tom1","tom2","tom3"};
6、数组的动态初始化
示例:使用数组存储班级学生的姓名和成绩
基于数组完成:欢迎使用迷你dv管理器,功能如图所示:

堆栈

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值