如何在c中写一个while语句?

时间:2015-05-30 19:23:30

标签: c while-loop

我应该写一个C while语句,在x大于10且是6或7的倍数时继续。我只需要包含实际的while语句,不是整个循环!

我知道这对你来说可能很有趣,但这是我到目前为止所做的。

#include<stdio.h>

int main(){
    int x;

    while (x > 10, x % 7 = 0 || x % 6 = 0) {
        printf("%d\n", x);
    }
}

6 个答案:

答案 0 :(得分:3)

逻辑且&&。作为运算符,,是“忽略左边事物的结果”。

答案 1 :(得分:3)

您的布尔逻辑和比较都使用错误的语法。它应该是这样的:

while (x > 10 && (x % 7 == 0 || x % 6 == 0)) {

逗号(,)不是有效的布尔运算符。你想要的是&&(逻辑AND)。您需要围绕其他两个表达式使用括​​号,因为AND(&&)的优先级高于OR(||)。

=用于设置值; ==用于比较它们。

最后,正如其他人所指出的那样,您不会在已发布的代码中的任何位置设置x。所以,你的循环不会运行。并且你不会在循环中修改x,所以,如果你进入循环,你将永远不会离开。

答案 2 :(得分:2)

您的while语句应为

while (x > 10 && (x % 7 == 0 || x % 6 == 0))

请注意&&用于“布尔值”和“{1}}用于”等式比较“。

答案 3 :(得分:2)

程序看起来像

#include <stdio.h>

int main( void )
{
    int x;

    printf( "Enter an integer number: " );
    scanf( "%d", &x );

    while ( x > 10 && ( x % 7 == 0 || x % 6 == 0 ) ) 
    {
        printf( "%d\n", x );
        printf( "Enter next integer number: " );
        scanf( "%d", &x );
    }
}

或者您可以通过以下方式放大while循环中的条件(以检查输入是否正确)

#include <stdio.h>

int main( void )
{
    int x;

    printf( "Enter an integer number: " );

    while ( scanf( "%d", &x ) == 1 && x > 10 && ( x % 7 == 0 || x % 6 == 0 ) ) 
    {
        printf( "%d\n", x );
        printf( "Enter next integer number: " );
    }
}

至于你在while循环中的条件,那么它有两个错误

while (x > 10, x % 7 = 0 || x % 6 = 0)

它使用逗号运算符代替逻辑运算符&amp;&amp;它使用赋值运算符,例如x % 7 = 0而不是比较运算符x % 7 == 0。变量x也未初始化。

答案 4 :(得分:1)

  

我应该写一个C while语句,当x是两者时继续   大于10和6或7的倍数。我只需要包含   实际的while语句,而不是整个循环!

让我们分析一下将在while()语句中的条件:

  

x大于10且是6或7的倍数

可以表示为

  

x大于10且是7的倍数或7的倍数

所以让我们在C:中编写代码

  

x大于10

x>10
  

&&
  

x的6倍或7倍的x倍数

(x%6)==0 || (x%7)==0

然后,一起

x>10 && ( (x%6)==0 || (x%7)==0 )

所以你的句子是这样的:

while (x>10 && ( (x%6)==0 || (x%7)==0 ))
{
  stuff...
}

答案 5 :(得分:0)

这可以是解决方案Ava

    while (x > 10 && (x % 7 == 0 || x % 6 == 0)) {