| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2118 人关注过本帖
标题:两个for 循环嵌套出问题,总是在自己不需要的情况下跳转到第一个循环
只看楼主 加入收藏
lihuahao哈
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:39
注 册:2018-11-17
结帖率:100%
收藏
 问题点数:0 回复次数:3 
两个for 循环嵌套出问题,总是在自己不需要的情况下跳转到第一个循环
package homeworks1;
import java.util.Scanner;
//本代码是为了输出一串不重复的数字,另附个人调试图
public class test {
    public static void main(String[] args) {
        int k=0;int[] number=new int[5];
        Scanner input=new Scanner(System.in);[
        for(int i=0;i<number.length;i++) {
            System.out.println("输入第"+(i+1)+"个数");
            number[i]=input.nextInt();                    
            for(int j=i;j>0;j--) {
                k=number[i];
                if(k==number[j-1]) {
                    System.out.println("数字重复,重新输入");
                    number[i]=input.nextInt();   
                    j=i;                    
                }   
            }   
        }   
        System.out.println("已输入数字为:");
        for (int i = 0; i < number.length; i++) {            
            System.out.print(number[i]+"  ");
        }
    }   
}
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: for 循环 int number System 
2019-04-13 11:45
lihuahao哈
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:39
注 册:2018-11-17
收藏
得分:0 
找了好久都没发现错在哪里,求大神回答!

[此贴子已经被作者于2019-4-13 15:14编辑过]


不懂就问,我也想变强!
2019-04-13 11:47
rind
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:49
专家分:368
注 册:2018-3-8
收藏
得分:0 
内层逻辑有点问题,不是跳转到外层。
首先确保输入没有重复,有重复的需要从头(j=i-1)开始比较。
依次输入
1 1 1 2 2 2  3 3 3  4 5 6
看输出吧。

程序代码:
import java.util.Scanner;

//本代码是为了输出一串不重复的数字,另附个人调试图
public class test {
    public static void main(String[] args) {
        int k = 0;
        int[] number = new int[5];
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < number.length; i++) {
            System.out.println("输入第" + (i + 1) + "个数");
            number[i] = input.nextInt();
            for (int j = i; j > 0; j--) {
                k = number[i];
                if (k == number[j - 1]) {
                    System.out.println("数字重复,重新输入");
                    number[i] = input.nextInt();
                    j = i + 1;  //j被赋值后,接着j--,然后再-1所以完美避过j=i-1的情况。
                }
            }
        }
        System.out.println("已输入数字为:");
        for (int i = 0; i < number.length; i++) {
            System.out.print(number[i] + "  ");
        }
    }
}




[此贴子已经被作者于2019-4-13 18:21编辑过]


仅供参考,欢迎指正
2019-04-13 18:19
lihuahao哈
Rank: 2
等 级:论坛游民
威 望:1
帖 子:27
专家分:39
注 册:2018-11-17
收藏
得分:0 
回复 3楼 rind
感谢你,问题解决了,我懂了

不懂就问,我也想变强!
2019-04-13 18:49
快速回复:两个for 循环嵌套出问题,总是在自己不需要的情况下跳转到第一个循环
数据加载中...
 
   



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

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