问答详情
源自:7-1 编程练习

编写代码,为神魔运行结果不对,我实在看不出来了

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

        int i=0;

        int[] scores={164,10,89,-52,-73};

        if(scores[i]>0 || scores[i]<100){

           

             if(i<scores.length)  {

             

             System.out.println(scores[i]);

             i++;

              }    

              

        }

     

        

        }   

    }

    


提问者:慕瓜0115291 2018-11-13 19:02

个回答

  • 慕神8293695
    2018-11-13 19:44:24
    已采纳

    首先,你定义数组的方法是错误的,正确的方法是 int[] scores= new int[]{164,10,89,-52,-73};

  • yyz要学java
    2018-11-14 08:52:57

    其实你这个可以理解为没有循环  只判断了一次结束程序   就是这样

  • 慕移动0851642
    2018-11-13 22:34:07


    public static void main(String[] args) {

            int[] scores={164,10,89,-52,-73};

            Arrays.sort(scores);

            for(int i=scores.length-1,j=0;i>0;i--){

            if(scores[i]>0&&scores[i]<100){

                 System.out.println(scores[i]);

                 j++;

                 if(j==3) break;

                }        

            }

    }

    你想输出三个值,却只有一个输出。。for一圈啊老哥

  • Loveless_World
    2018-11-13 22:03:04

    上面的说的是对的,因为你只走了一遍循环,只在if里面。但是你scores数组里面的第一个成绩就是164,走到if条件的时候你已经把它排除掉了。

     if(scores[i]>0 || scores[i]<100){ // scores[0] -> 164,跳出if条件程序终止

    正确的做法应该是写一个循环

    for (int i = 0; i < scores.length(); i++) {
        // ...你想做的什么事情加到这个循环里面...
        // 在没有使用break的情况下,会遍历整个数组
    }


  • 慕神8293695
    2018-11-13 19:57:14

    有需求吗?可以的话把需求先告诉我们。


  • 慕神8293695
    2018-11-13 19:47:04

    if(i<scores.length)  {

                 System.out.println(scores[i]);

                 i++;

                  }    ,看你写的这个代码,貌似需求要循环遍历判断,但是你并没有循环关键字,比如for。