初学者C循环功能

时间:2016-06-09 12:48:41

标签: c function

我刚刚开始冒险进入来自PHP的C语言。我在printf()函数从另一个函数调用时遇到问题:

#include <stdio.h>

void printloop (int valx) {
    int x;
    for (x = valx; x < 5; x++) {
        printf("Value of x is: %d\n", x);
    }
}

int main() {
    printloop(5);
    return 0;
}

程序将编译并运行,但屏幕上没有输出。

5 个答案:

答案 0 :(得分:6)

当您使用printloop调用5函数时,for循环基本上变为

for (x = 5; x < 5; x++) {
    //...
}

x < 5永远不会成真。

我猜你的意思是像

for (x = 0; x < valx; x++) {
    //...
}

答案 1 :(得分:5)

这里有什么问题,你的逻辑是说5&lt; 5,这是假的。您的for循环没有执行,因为在printloop(5);调用printloop函数时,它传递整数值为5。

void printloop (int valx) {
int x;
for (x = valx; x < 5; x++) {
    printf("Value of x is: %d\n", x);
}

您的printloop函数接收值为5,将函数内部的x设置为x = 5.

当你的for循环执行时,你将有

void printloop (int valx) {
    int x = 5;
    for (5 = valx; 5 < 5; 5++) {
        printf("Value of x is: %d\n", x);
    }
}

for循环将看到5&lt; 5,这是假的,因此循环不会执行。

我想你想说的是

#include <stdio.h>

void printloop (int valx) {
    int x;
    for (x = 0; x < valx; x++) {
        printf("Value of x is: %d\n", x);
    }
}

int main() {
    printloop(5);
    return 0;
}

将输出:

Value of x is: 0
Value of x is: 1
Value of x is: 2
Value of x is: 3
Value of x is: 4

我希望这是有道理的,并保持良好的工作!

答案 2 :(得分:1)

在你的主要部分,你正在调用printloop并给它赋值5.这意味着你正在使valx = 5并且当你在循环中说x = valx时,你将x设置为等于5同样。当你的循环达到条件时,它将永远不会运行,因为x等于5,不小于它。

答案 3 :(得分:0)

#include <stdio.h>

void printloop (int valx) {
int x;
    for (x = valx; x < 5; x++) {<--- **Your problem is here ( x = 5; x < 5; x++)
    printf("Value of x is: %d\n", x);
    }
}

int main() {
    printloop(5);
 return 0;
}

你告诉循环它小于5(这不是因为你给了valx的值)因此它不会打印任何东西,因为它不会进入循环

答案 4 :(得分:0)

这是因为你将5传递给了函数printloop,并且只有当给定的参数小于5时,printloop中的for循环才会运行。你可以更改该值或传递小于5的整数。