此代码的输出不是我所期望的。问题在哪里?

时间:2017-04-08 23:30:25

标签: c loops nested

#include<stdio.h>
#include<conio.h>
main()
{
    int i=1, j=1;
    while(i++<=100)
    {
        while(j++<=200)
        {
            if(j==150)
                break;
            else
                printf(“%d%d\n”, i, j);
         }

      } 
 }

在输出中,我看到外循环只是迭代,2和3次,但没有进一步。我认为外循环应该迭代100次,内循环应该在外循环的每次迭代中迭代200次。

但它没有发生。任何人都可以指导我吗?

我正在使用Dev C ++并参加C语言课程。

2 个答案:

答案 0 :(得分:0)

#include<stdio.h>
#include<conio.h>
main()
{
    int i=1, j=1;
    while(i++<=100)
    {
        while(j++<=200)
        {
            if(j==150)
                break;
            else
                printf(“%d%d\n”, i, j);
         }
         //don't forget to reset your j counter on every iteration of the outer loop.
         j=1;
      } 
 }

答案 1 :(得分:0)

您的代码中的问题是您没有在内部while循环结束时重置class PathContentView: UIView { let previousButton: DynamicButton = { let r = DynamicButton(style: .caretLeft) r.lineWidth = 3 r.strokeColor = .white r.highlightStokeColor = .gray return r }() let nextButton: DynamicButton = { let r = DynamicButton(style: .caretRight) r.lineWidth = 3 r.strokeColor = .white r.highlightStokeColor = .gray return r }() let deleteButton: DynamicButton = { let r = DynamicButton(style: .close) r.lineWidth = 3 r.strokeColor = .white r.highlightStokeColor = .gray return r }() init() { super.init(frame: .zero) setup() } override init(frame: CGRect) { super.init(frame: frame) setup() } private func setup() { // button components let deleteButtonHolder = InsetView(width: 25, height: 25, view: deleteButton) let previousButtonHolder = InsetView(width: 25, height: 25, view: previousButton) let nextButtonHolder = InsetView(width: 25, height: 25, view: nextButton) let rootStackView = UIStackView() let topSectionStackView = UIStackView() topSectionStackView.distribution = .fillEqually topSectionStackView.alignment = .center topSectionStackView.spacing = 20 topSectionStackView.axis = .horizontal rootStackView.axis = .vertical rootStackView.distribution = .fillEqually rootStackView.alignment = .fill rootStackView.isLayoutMarginsRelativeArrangement = true rootStackView.layoutMargins = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5) addSubview(rootStackView) topSectionStackView.addArrangedSubview(previousButtonHolder) topSectionStackView.addArrangedSubview(nextButtonHolder) rootStackView.addArrangedSubview(deleteButtonHolder) rootStackView.addArrangedSubview(topSectionStackView) rootStackView.pinTo(superView: self) rootStackView.isUserInteractionEnabled = true topSectionStackView.isUserInteractionEnabled = true } required init?(coder aDecoder: NSCoder) { fatalError() } func tapped() { print("tapped") } } 计数器。因此,一旦j超过200,编译器就不会进入while循环,因为它永远不会重置为1.在内部while循环结束后将j重置为1:

j