黑马程序员技术交流社区
标题:
为什么我觉得我也得代码好复杂,有什么好方法可以简化吗
[打印本页]
作者:
仰天长啸
时间:
2015-3-2 20:13
标题:
为什么我觉得我也得代码好复杂,有什么好方法可以简化吗
//定义一个包含10个整数,然后查询任意这个数字是否在该10个数字内
public class first004 {
public static void main(String[] args) {
int [] arr={11,23,45,67,81,90,33,77,88,10};
find(arr);
}
private static void find(int [] arr) {
System.out.println("您输入您要查询的数字");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
boolean flag = true;
for(int a=0;a<arr.length;a++){
if(num==arr[a]){
flag=true;
}
else{
flag=false;
}
}
if(flag==true){
System.out.println("您查询的数字在数组里面");
}
if(flag==false){
System.out.println("您查询的数字不在数组里面");
}
}
}
作者:
fantacyleo
时间:
2015-3-2 20:17
不用flag,for循环if(num==arr[a])成立则直接输出“找到”,然后return就行了。没有return、出了for循环就是没找到,输出“找不到”即可
作者:
仰天长啸
时间:
2015-3-2 20:28
你这个方法我试了 会输出arr.length个找不到,我忘了学的时候怎么写的啦,自己想想感觉不对劲,就发帖问问:'(
作者:
仰天长啸
时间:
2015-3-2 20:30
其实我试了好几次 把输出语句换了好几个位置,都不行,跳不出循环。要是后面没有else这个还能跳出循环{:3_50:}
作者:
z47057554
时间:
2015-3-2 23:25
本帖最后由 z47057554 于 2015-3-2 23:33 编辑
这是我做的精简,希望对你有帮助:
private static void find(int [] arr) {
System.out.println("您输入您要查询的数字");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
boolean flag = false;//true-->false
for(int a=0;a<arr.length;a++){
if(num==arr[a]){
flag=true;//只在找到时变为真,找不到依然为假 break;
}
}
if(flag==true)
System.out.println("您查询的数字在数组里面");
else
System.out.println("您查询的数字不在数组里面");
}
作者:
奋斗小青年
时间:
2015-3-2 23:41
给楼主一个新的写法,可以直接用集合去做,将数组转成集合,用集合方法自动查找。会比循环比较方便点。
//定义一个包含10个整数,然后查询任意这个数字是否在该10个数字内
class first004 {
public static void main(String[] args)
{
Integer [] arr={11,23,45,67,81,90,33,77,88,10};
find(arr);
}
private static void find(Integer [] arr)
{
System.out.println("您输入您要查询的数字");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
boolean flag = false;
List<Integer> list = Arrays.asList(arr);
if(list.contains(sc))
{
System.out.println("存在");
}
else
{
System.out.println("不存在");
}
}
}
复制代码
作者:
fantacyleo
时间:
2015-3-3 00:04
仰天长啸 发表于 2015-3-2 20:28
你这个方法我试了 会输出arr.length个找不到,我忘了学的时候怎么写的啦,自己想想感觉不对劲,就发帖问问: ...
不会出现这种情况的。你是还没明白我的意思
作者:
huangchunwei
时间:
2015-3-3 07:52
学习学习。
作者:
alvis2015
时间:
2015-3-3 14:51
如果找到就跳出循环,没必要在找下去了
作者:
linuxpara910829
时间:
2015-3-3 18:09
可以用集合 或者数组的工具类 代码不用写 只要调用方法就可以
作者:
夏季熬成了秋
时间:
2015-3-3 22:06
这个 写代码 首先能写出来就行,然后在此基础上想法自己研究下简化。时间长了写的代码就简单化了
作者:
仰天长啸
时间:
2015-3-3 22:11
上完传智播客回来的路上就想 我必须进去黑马,因为这是最后的一条可以选择的路!!!压力很大
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2