我刚刚开始冒险进入来自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;
}
程序将编译并运行,但屏幕上没有输出。
答案 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的整数。