栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

2022-7-14 第六小组 王岩 学习日记(6th day)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2022-7-14 第六小组 王岩 学习日记(6th day)

JAVA第二天

今日学习内容

目录

今日学习内容

package----包

数组

概念:

定义:

数组访问:

冒泡排序法:

         Scanner----控制输入语句  

循环

for循环:

 foreach循环

 while循环

跳出和终止:

do...while循环

循环的嵌套

例题*:制作一个计算器


package----包

        包的命名规则:

1.尽量使用全小写,没有驼峰式命名,尽量用字母。

2.包名也是由,字母,数字,下划线,$符组成,但建议除了字母不要用别的。

3.一般情况下,使用站点名的逆序:eg:www.baidu.com

        包名:com.baidu.模块名

        包名:com.baidu.架构名/功能...xxx

数组

        概念:

数组就是存储数据长度固定的容器,里面数据要保证数据类型是相一致。

                                数组一旦声明,必须指定长度。 

        定义:

                        一维数组: 

int [] arr1={1,2,3,4,5};//不用,有局限性

int arr2[]={1,2,3,4,5};//不用,有局限

int [] arr3=new int[10];//

int [] arr4=new int[]{1,2,3,4,5,6,7};//推荐使用

                        二维数组:

int[][] arr=new int[3][2]

1. 声明 二维数组名字 arr

2. [3] 代表 三个一维数组--->3行

3. [2] 代表 2个值 --->2列

                        遍历二维数组:(for增强方式)

        for(int[] ints:arr){
            for(int anInt:ints){
                System.out.println(anInt+".");
            }
            System.out.println();
        }

        数组访问:

索引 :每一个存储到数组中元素,都会自动拥有一个编号,从0开始,这个自动编码叫做数组索引(index),可以通过数组索引(index,下标)访问的数组中元素。

格式:数组名[索引]

    String[] strs={"张三","李四","王五"};
    System.out.println(strs[0]);
    System.out.println(strs[1]);
    System.out.println(strs[2]);

长度:length

    System.out.println(strs.length);

赋值:

strs[1]="赵六";

数组在内存中的原理

int[] arr --->都在栈内存中 main方法里 arr=数组内存地址 

new arr[10] -->都在堆内存 ,划分连续空间(1000~1039 int占有个4字节 4*10)-》jd98343

自动分配index ->0-arr[0]...9-arr[9] 并且初始化

int =0 = ---->数组在堆内存中地址赋值给栈内存中 arr的引用 ,输出 arr

 如果数组下标超出了长度(不存在索引),程序会抛出越界异常。

冒泡排序法:

        把数组内的元素从小到大或者从大到小排列。

思路:相邻元素两两相比,元素互换,找出最大值。

第一次排序:

 代码如下:

package homework;
import java.util.Arrays;
public class Test {
    public static void main(String[] args) {
        //排序
        //冒泡排序
        int[] arr={3,1,6,9,7,2,8,4,5};
        int[] arrSort=sort(arr);
        //int[] arr={1,2,3,4,5,6,7,8,9};
        System.out.println("冒泡排序之后结果是:"+Arrays.toString(arrSort));
    }
    // 冒泡排序
    // int【】 排好序 int[] arr 没排序
    public static int[] sort(int[] arr){
        int count=0;
        for(int i=0;iarr[j+1]){
                //相隔两数交换位置
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
                count++;
            }
        }
        System.out.println("循环了多少次"+count+"次");
        return arr;
    }
}

        Scanner----控制输入语句  

       应用:

Scanner in=new Scanner(System.in);//键盘输入。
String s=in.next();
System.out.println(s);

 输出:

 

 例题:

        需求:
                控制台分别输入两个整数

                如果有一个数是8,并且第二个数是9,就打印两个数的和

                如果其中有一个数是8或者有一个是9,就打印两个数的差

                如果两个数中既没有8也没有9,就分别打印两个数。

代码如下:

        Scanner a = new Scanner(System.in);
        Scanner b = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int c=a.nextInt();
        System.out.println("请输入第二个整数:");
        int d=b.nextInt();
        if(c==8){
            if(d==9){
                System.out.println(c+"+"+d+"="+(d + c));
                return;
            }
            System.out.println(c+"-"+d+"="+(c - d));
            return ;
        }else if(c==9 || d==9 || d==8){
            System.out.println(c+"-"+d+"="+(c - d));
            return ;
        }
        System.out.println("第一个数="+c);
        System.out.println("第二个数="+d);

在这里我们就随机输入两个数,就不都展示了:

 多重if 每个if之间没有联系,这些if有可能都执行

例题2:

        需求:                        

成绩管理系统:

    键盘输入成绩:

        如果成绩是60分:及格

        如果成绩是85分:奖励一台ipad

        如果成绩是100分:奖励一台十三香pro max

        如果其他情况:没奖励。

代码如下:

        Scanner a = new Scanner(System.in);
        System.out.println("请输入您的成绩");
        int score=a.nextInt();
        switch (score){
            case 60:
                System.out.println("及格");
                break;
            case 85:
                System.out.println("奖励一台ipad");
                break;
            case 100:
                System.out.println("奖励一台十三香pro max");
                break;
            default:
                System.out.println("你啥也没有!");
        }

 java里的switch只能判断如下类型

整型:byte、short、int

字符型:char

String:JDK1.7以后的版本包括7(JDK1.7也就是7)

枚举:JDK5以后包括5

循环

for循环:
for(初始化表达式;布尔表达式;步进表达式){
    循环体
}

 例题:

        需求:

                打印一个5*5的矩形

        for (int i = 0; i <5 ; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }

 foreach循环

也可以理解为是for增强语句

可以理解为把数组中的元素通过:镜像给i

我们操作的不是原始数据,我们操作的是镜像数据

foreach的操作更加的安全,不影响原始数据

foreach是JDK5以后才有的

两个革命性版本:JDK5/JDK8。

示例: 

        int []arr=new int[]{1,2,3,4}
        for(int i:arr){
            System.out.println(i+1);//遍历数组
        }

 while循环
初始化表达式
while(布尔表达式){
    循环体
    步进表达式
}

例题:

        需求:

                猜数字:

                键盘输入一个数字把他保存起来。 猜一猜输入的是什么?

                猜大了,就提示大了,小了就提示小了, 直到猜到这个数。

代码如下:

        Scanner a = new Scanner(System.in);
        int c=0;
        System.out.println("请输入一个你想保存的数");
        int num=a.nextInt();
        System.out.println("游戏即将开始....");
        System.out.println("请猜猜数字是几呀!");
        while(c==0){
            int num1=a.nextInt();
            if(num1>num){
                System.out.println("猜大了");
            }else if(num1 

do...while循环
do{
    循环体
}while(布尔表达式)

do..while跟while本质上没有区别,唯一的区别就是

do...while先执行,后判断(无论符不符合,都会至少执行一次)

while,先判断,后执行。

跳出和终止:

         break:终止当前循环。
         continue:终止当前次循环,开启下一次循环。

         默认只能控制离他们最近的循环。

         但可以给想跳出的循环加上标签。

         类似于:goto

         终止程序执行的方式:

                system.exit(0);  

         0 :代表安全退出

         -1:代表强制退出

         如果能安全退出,就不用它了

         所以大部分都用-1;

示例:

        a:for (int i = 0; i <5 ; i++) {
            for (int j = 0; j < 5; j++) {
                System.out.print("*");
                break a;
            }
            System.out.println("");
        }

 最后执行结果只有一个*号,因为在i=0,j=0时就已经跳出了循环。

循环的嵌套

利用循环的嵌套可以解决很多问题: 

打印一个九九乘法表:

        for (int i = 1; i < 10; i++) {
            for (int j = 1; j <=i ; j++) {
                int x=i*j;
                System.out.print(j+"*"+i+"="+i*j+"  ");
            }
            System.out.println("");
        }

例题*:制作一个计算器

需求:

从键盘输入两个数字和一个符号
加减乘除
打印输出计算结果
1.除数不能为0
2.符号输入不对怎么办
3.计算器能不能一直算下去。
Scanner a = new Scanner(System.in);
    n1:for(;;){
        System.out.println("请输入第一个数");
        double num1=a.nextDouble();
        n2:for(;;){
            System.out.println("请输入第二个数");
            double num2=a.nextDouble();
            n3:for(;;){
                System.out.println("请输入运算符号");
                String symbol=a.next();
                double sum=0;
                switch (symbol){
                    case "+":
                        sum=num1+num2;
                        System.out.println("计算结果为"+num1+symbol+num2+"="+sum);
                        break n2;
                    case "-":
                        sum=num1-num2;
                        System.out.println("计算结果为"+num1+symbol+num2+"="+sum);
                        break n2;
                    case "*":
                        sum=num1*num2;
                        System.out.println("计算结果为"+num1+symbol+num2+"="+sum);
                        break n2;
                    case "/":
                        if(num2!=0) {
                            sum=num1/num2;
                            System.out.println("计算结果为"+num1+symbol+num2+"="+sum);
                            break;
                        }else{
                            System.out.println("除数错误,请重新输入");
                            continue n2;
                        }
                    default:
                        System.out.println("你输入的符号错误");
                        continue n3;
                    }
                }
            }
            c:for(;;){
                System.out.println("是否继续运算:1、是。2、否");
                double x=a.nextDouble();
                if(x==1){
                    continue c;
                }else if(x==2){
                    System.out.println("计算机即将关闭,感谢使用");
                    break n1;
                }else {
                    System.out.println("输入错误,请重新输入");
                }
            }
        }
思维导图:

 

 

暑期编程PK赛 得CSDN机械键盘等精美礼品!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016477.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号