| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4577 人关注过本帖, 1 人收藏
标题:我与a5549877在JAVA论坛中的交流
取消只看楼主 加入收藏
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
结帖率:100%
收藏(1)
 问题点数:0 回复次数:14 
我与a5549877在JAVA论坛中的交流
对于一个你还没有解决的难题,你可以先问,或许我可以在你解决之前提供答案。
你的学习成果,你可以发出来与我分享,我若看出不足,定会补充。
但愿你我能快速成长。
搜索更多相关主题的帖子: JAVA 
2016-10-14 00:24
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
do{
int select=input.nextInt();//选择功能
if(select==1){
    //1.新增DVD
}elseif(select==2){
    //2.查看DVD
}elseif(select==3){
    //....
}elseif(select==4){
    //...
}elseif(select==5){
    //..
}elseif(select==6){
    //.
}else{
System.out.println("你选择有错,请重新选择!");
}
}while(select>6||select<1);
注:
我不知道是else if还是elseif,你试一下。
我不知道表示或运算是不是||,C/C++中是||。
我目前专攻高级特性,还没研究基本语法。过一段时间我会专攻这些基本语法。


[此贴子已经被作者于2016-10-15 16:30编辑过]


我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-15 16:14
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
你还可以:
do{
int select=input.nextInt();//选择功能
switch(select){
    case 1://1.新增DVD
           break;
    case 2://2.
           break;
case 3://
           break;
case 4://
           break;
case 5://
           break;
case 6://
           break;
default: System.out.println("你选择有错,请重新选择!");
}while(select>6||select<1);

[此贴子已经被作者于2016-10-15 16:30编辑过]


我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-15 16:19
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
你说封装。你不要把重点放在封装上。你要把重点放在类与对象上。

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-15 16:24
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
如果有C/C++实现,这并不难,难在JAVA的数组跟C/C++的数组有很大的不同。我现在是头大的要死。我决定要攻下数组,下面是我通过帖子总结的:数组
java语言中,数组是一种最简单的复合数据类型。数组是相同数据类型数据的有序集合。其元素可以用数组名和下标来唯一地标识。数组分一维数组和多维数组。
一维数组
一维数组变量的定义
方法一:dataType[]arrayName;
方法二:dataType arrayName[];
arrayName将用来标识其元素类型为dataType的一维数组。此时此刻,它只是一个标识。
这两种方法等价,但java提倡方法一。java之所以还用方法二,只是为了让C/C++程序员能够快速理解java语言。
一维数组变量的赋值
方法一:arrayName=new dataType[arraySize];
方法二:arrayName=new dataType[]{value0,value1,…,valuek};
public class Demo {
    public static void main(String[] args){
        int[]a;
        a=new int[3];System.out.println(a[0]+","+a[1]+","+a[2]);
        a=new int[]{1,2};System.out.println(a[0]+","+a[1]);
    }
}
程序输出:
0,0,0
1,2
一维数组变量的初始化
方法一:dataType[]arrayName= {value0,value1,…,valuek};//静态初始化,是在栈上分配的?
方法二:dataType[]arrayName=new dataType[arraySize];//动态初始化,是在堆上分配的?
方法三:dataType[]arrayName=new dataType[]{value0,value1,…,valuek};//动态初始化
public class Demo {
    public static void main(String[] args){
        int[]a={1,2,3};System.out.println(a[0]+","+a[1]+","+a[2]);
        double[]b=new double[3];System.out.println(b[0]+","+b[1]+","+b[2]);
        int[]c= new int[]{1,2,3};System.out.println(c[0]+","+c[1]+","+c[2]);
    }
}
程序输出:
1,2,3
0.0,0.0,0.0
1,2,3

public final int length():返回数组长度
还有很多不足,我没搞明白,还在阅读中,网上帖子写的都乱,要多花时间……



[此贴子已经被作者于2016-10-16 18:09编辑过]


我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-16 18:06
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
//package com.dvdguanli.zuoye;
import java.util.*;
public class dvdguanli{
    public static void main(String[] args) {
int count=-1;//记录DVD的个数
        String name[]=new String[6];//DVD名称
        int state[]=new int[6];//DVD借出状态
        String date[]=new String[6];//DVD借出日期
        int degree[]=new int[6];//DVD借出次数   
        Scanner input=new Scanner(System.in);
        System.out.println("欢迎使用迷你DVD管理器");
        System.out.println("------------------------------");
        System.out.println("1.新增DVD");
        System.out.println("2.查看DVD");
        System.out.println("3.删除DVD");
        System.out.println("4.借出DVD");
        System.out.println("5.归还DVD");
        System.out.println("6.退出DVD");
        System.out.println("------------------------------");
        System.out.println("请选择:");
        int select=input.nextInt();//选择功能
        while((select!=1)&&(select!=6)){System.out.println("一个DVD都没有!请重新选择");select=input.nextInt();}
        if(select==6)return;
  
            
do{
        if(select==1){//先判断,后做事!先判断有没有满,再决定是否做。你当然可以在这里判断,但是你很多地方都要判断,还不如在外面定义一个count

//while(DVD没有满&&继续要添加DVD)
//{
 // 做事,
//做完事问还要不要再添加DVD
//}


            System.out.println("---->新增DVD");
            System.out.print("请输入DVD名称:");
            String iname=input.next();
            for(int i=0;i<name.length;i++){
                if(name[i]==null){//判断如果是null就将输入的名称赋给它
                    name[i]=iname;
                    state[i]=1;//未借出状态
                    System.out.println("新增<"+name[i]+">成功");
                    break;
                }
                if(i==name.length){
                    System.out.println("DVD已满");
                }
                     
                System.out.print("请输入0返回:");
                int inum=input.nextInt();
                if(inum==0){
                     
                }else{
                    System.out.println("输入有误,异常终止!");
                }
            }   
        //2222222222222222222222222222222222222222222222222222222        
        }else if(select==2){
            System.out.println("---->查看DVD");
            System.out.println("序号\t\t状态\t\t名称\t\t借出日期\t\t借出次数");
            for(int i=0;i<name.length;i++){                  
                if(name[i]==null){//如果等于空就跳出
                    break;
                }else if(state[i]==0){   
                    System.out.println((i+1)+"\t\t已借出\t\t<"+name[i]+">\t\t"+date[i]+degree[i]);//借出状态
                }else if(state[i]==1){
                    System.out.println((i+1)+"\t\t可借    \t\t<"+name[i]+">"+degree[i]);//未借出状态
                }
            }     
            System.out.print("请输入0返回:");
            int inum=input.nextInt();
            if(inum==0){     
            }else{
                System.out.println("输入有误,异常终止!");
            }
        //33333333333333333333333333333333333333333333333333333333333
        }else if(select==3){
            System.out.println("---->删除DVD");
            System.out.print("请输入要删除的DVD名称:");
            String iname=input.next();
            for(int i=0;i<name.length;i++){
                     
                if(name[i]==null){//判断是否为null
                    System.out.println("没有找到您要删除的DVD名称!");
                    break;
                }else if(name[i].equals(name)&&state[i]==1){//输入的DVD名称要存在,并且处于未借出状态才能删除
                    System.out.println("删除<"+name[i]+">成功");
                    int index=i;        
                    while(name[index+1]!=null){//判断index后面的一个值是否为空
                        name[index]=name[index+1];//将删除元素后的元素往前移
                        index++;
                    }
                    name[index]=null;//元素往前移后,将最后一个原本有值的元素为空
                    break;
                }else if(name[i].equals(name)&&state[i]==0){//输入的DVD名称要存在,并且处于借出状态不能删除
                    System.out.println("<"+name+">为借出状态,不能删除!");
                    break;
                }
            }
                 
            System.out.print("请输入0返回:");
            int inum=input.nextInt();
            if(inum==0){
                     
            }else{
                System.out.println("输入有误,异常终止!");
            }
            //44444444444444444444444444444444444444444444444444444444
            }else if(select==4){
            System.out.println("---->借出DVD");
            System.out.print("请输入要要借出的DVD名称:");
            String iname=input.next();
            for(int i=0;i<name.length;i++){
                if(name[i]==null){
                    System.out.println("没有找到此DVD信息!");
                    break;
                }else if(name[i].equals(name)&&state[i]==1){
                    System.out.print("请输入借出日期(年-月-日):");
                    date[i]=input.next();
                    state[i]=0;//状态修改
                    System.out.println("<"+name[i]+">借出成功");
                    degree[i]++;
                    break;
                }else if(name[i].equals(name)&&state[i]==0){
                    System.out.println("您要借的DVD已借出!");
                    break;
                }
            }
                 
            System.out.print("请输入0返回:");
            int inum=input.nextInt();
            if(inum==0){
                 
            }else{
                System.out.println("输入有误,异常终止!");
            }
        //55555555555555555555555555555555555555555555555         
        }else if(select==5){
            System.out.println("---->归还DVD");
            System.out.print("请输入要归还的DVD名称:");
            String iname=input.next();
            for(int i=0;i<name.length;i++){
                if(name[i]==null){
                    System.out.println("没有此DVD");
                    break;
                }else if(name[i].equals(name)&&state[i]==0){
                    System.out.print("请输入归还日期(年-月-日):");
                    String returnTime=input.next();
                    if(!(returnTime.equalsIgnoreCase(date[i]))){
                        System.out.println("\n日期有误,不能归还!");
                    }else{
                        state[i]=1;                    //修改状态
                        System.out.println("\n归还<"+name[i]+">成功");
                        System.out.println("借出日期为:"+date[i]);
                        System.out.println("归还日期为:"+returnTime);
                    }
                    break;
                }else if(name[i].equals(name)&&state[i]==1){
                    System.out.println("您要归还的DVD未借出不用归还!");
                    break;
                }
            }
                 
            System.out.print("请输入0返回:");
            int inum=input.nextInt();
            if(inum==0){
                 
            }else{
                System.out.println("输入有误,异常终止!");
            }
        //666666666666666666666666666666666         
        }else if(select==6){
            System.out.println("---->退出DVD");
        }
select=input.nextInt();
}while(select!=0)
    }
}
 


[此贴子已经被作者于2016-10-17 01:51编辑过]


我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-17 01:06
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
你这个程序太长,要花很多时间,我顶不住。
一:你完成这个程序只是用了一个方法。你应该根据功能划分,一个功能写成一个方法。在main中调用它们。这样,人看上去也不累。你看看你,写了一大堆。
二:你的很多功能块都要判断DVD的个数,你干马不保存这个判断结果呢,定义一个变量,如int count;用它来保存结果。多好
三:就算你没有定义count,你在你的各个功能块判断DVD的个数,你要先判断,判断好了你再做事。

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-17 01:19
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
你真是花了不少时间写这个。看样子你是真心在学。
你是在自己研究数据结构知道吗。
你应该把时间花在收集各种语法规则上,等你有了一定的基础再学习数据结构,而不是自己研究。太慢了你。还有,你不应该把时间放在做这么大的题上。

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-17 01:40
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
你的这个程序没问题,只是太粗糙了。不过这是算法问题,没必要纠结于此。你说的outer,我也不清楚,不过我想先搞定二维数组再说,你先等等。对于一维数组,我的总结目前是:
一维基本数据类型数组
一、一维基本数据类型数组变量的定义
方法一:dataType[]arrayName;
方法二:dataType arrayName[];
arrayName将用来标识其元素类型为dataType的一维数组。此时此刻,它只是一个标识。
这两种方法等价,但java提倡方法一。java之所以还用方法二,只是为了让C/C++程序员能够快速理解java语言。

二、一维基本数据类型数组变量的赋值
方法一:arrayName=new dataType[arraySize];
方法二:arrayName=new dataType[]{value0,value1,…,valuek};
数组元素arrayName[下标]中存放的是基本数据类型数据本身。
public class Demo {
    public static void main(String[] args){
        int[]a;
        a=new int[3];System.out.println(a[0]+","+a[1]+","+a[2]);
        a=new int[]{1,2};System.out.println(a[0]+","+a[1]);
    }
}
程序输出:
0,0,0
1,2

三、一维基本数据类型数组变量的初始化
方法一:dataType[]arrayName= {value0,value1,…,valuek};//静态初始化,是在栈上分配的?
方法二:dataType[]arrayName=new dataType[arraySize];//动态初始化,是在堆上分配的?
方法三:dataType[]arrayName=new dataType[]{value0,value1,…,valuek};//动态初始化
数组元素arrayName[下标]中存放的是基本数据类型数据本身。
public class Demo {
    public static void main(String[] args){
        int[]a={1,2,3};System.out.println(a[0]+","+a[1]+","+a[2]);
        double[]b=new double[3];System.out.println(b[0]+","+b[1]+","+b[2]);
        int[]c= new int[]{1,2,3};System.out.println(c[0]+","+c[1]+","+c[2]);
    }
}
程序输出:
1,2,3
0.0,0.0,0.0
1,2,3
一维对象数组
一、一维对象数组变量的定义
方法一:ClassName[]objectArrayName;
方法二:ClassName objectArrayName[];

二、一维对象数组变量的赋值
方法一:objectArrayName =new ClassName[arraySize];
方法二:objectArrayName = new ClassName []{new ClassName (实参表0), new ClassName (实参表1),…, new ClassName (实参表k)};
数组元素objectArrayName[下标]中存放的是类ClassName对象的引用。
public class Demo{
    String name;
    int age;
    Demo(String name,int age){this.name = name;this.age = age;}
    @Override
    public String toString(){return "[" + name + "," + age + "]";}
    public static void main(String[] args){
        Demo[] t;
        //System.out.println(t);//error
        t = new Demo[2];
        System.out.println(t+","+t[0]+","+t[1]);
        t[0]=new Demo("zs",18);t[1]=new Demo("ls",19);
        System.out.println(t+","+t[0]+","+t[1]);
        t = new Demo[]{new Demo("zs",18),new Demo("ls",19)};
        System.out.println(t+","+t[0]+","+t[1]);
    }
}
程序输出:
[LDemo;@1db9742,null,null
[LDemo;@1db9742, [zs,18],[ls,19]
[LDemo;@106d69c, [zs,18],[ls,19]

三、一维对象数组变量的初始化
方法一:ClassName[]objectArrayName = {new ClassName (实参表0), new ClassName (实参表1),…, new ClassName (实参表k)};
方法二:ClassName[]objectArrayName = new ClassName[arraySize];
方法三:ClassName[]objectArrayName = new ClassName []{new ClassName (实参表0), new ClassName (实参表1),…, new ClassName (实参表k)};
数组元素objectArrayName[下标]中存放的是类ClassName对象的引用。
public class Demo{
    String name;
    int age;
    Demo(String name,int age){this.name = name;this.age = age;}
    @Override
    public String toString(){return "[" + name + "," + age + "]";}
    public static void main(String[] args){
        Demo[]a={new Demo("zs",18),new Demo("ls",19)};
        System.out.println(a+","+a[0]+","+a[1]);
        Demo[]b = new Demo[2];
        System.out.println(b+","+b[0]+","+b[1]);
        Demo[]c= new Demo[]{new Demo("zs",18),new Demo("ls",19)};
        System.out.println(c+","+c[0]+","+c[1]);
    }
}
程序输出:
[LDemo;@1db9742,[zs,18],[ls,19]
[LDemo;@106d69c,null,null
[LDemo;@52e922, [zs,18],[ls,19]

我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-18 12:45
反脑控2016
Rank: 4
等 级:业余侠客
威 望:2
帖 子:108
专家分:212
注 册:2016-9-2
收藏
得分:0 
标签
在java中,标签起作用的唯一的地方是在迭代语句之前。
在java中需要使用标签的唯一理由就是因为有循环嵌套的存在,而且想从多层嵌套中break或continue。
public class Demo{
    public static void main(String args[])throws Exception{
        int i = -1;
        label1:for (int k = 0; k < 5; k++){
            i++;
            if (k == 2)break label1;
            System.out.print("i="+i+" ");
        }
        System.out.println("");
        int j=-1;
        label2: for (int k = 0; k < 5; k++){
            j++;
            if (k == 2)continue label2;
            System.out.print("j="+j+" ");
        }
        System.out.println("");
        label3: for (int k = 0; k < 5; k++){
            int h=-1;
            for (int m = 0; m < 5; m++){
                h++;
                if (m == 2)break label3;
                System.out.print(k+","+h+" ");
            }
        }
        System.out.println("");
        label4: for (int k = 0; k < 5; k++) {
            int h = -1;
            for (int m = 0; m < 5; m++) {
                h++;
                if (m == 2)continue label4;
                System.out.print(k+","+h+" ");
            }
        }
        System.out.println("\n程序执行完毕");
    }
}
程序输出:
i=0 i=1
j=0 j=1 j=3 j=4
0,0 0,1
0,0 0,1 1,0 1,1 2,0 2,1 3,0 3,1 4,0 4,1
程序执行完毕
说明:程序中,不管有没有label1和label2,程序输出结果不变。


[此贴子已经被作者于2016-10-18 19:49编辑过]


我学编程,总爱用自己的语言将所学的东西描述下来,渐渐的,一篇篇的文章,看起来像一个个杰作。
2016-10-18 19:15
快速回复:我与a5549877在JAVA论坛中的交流
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019083 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved