C语言中对多种条件的While循环响应
这里我有一个代码,它应该在循环的第一个序列之后打印“Error”,因为根据我前面的问题,由于“短路”,它只会读取循环的第一个条件,并且只会在循环的第一个序列之后执行。。。在解决了这个问题之后,我仍然无法显示“Error!”,所以我尝试添加C语言中对多种条件的While循环响应,c,while-loop,conditional-statements,C,While Loop,Conditional Statements,这里我有一个代码,它应该在循环的第一个序列之后打印“Error”,因为根据我前面的问题,由于“短路”,它只会读取循环的第一个条件,并且只会在循环的第一个序列之后执行。。。在解决了这个问题之后,我仍然无法显示“Error!”,所以我尝试添加&&getch(),它给了我一个 Error! 现在我有3个(多个)条件导致在第一个序列中执行“Error!”,我想知道C如何响应我的多个条件,这可能有助于解决错误 我的代码: #include <stdio.h> #include <con
&&getch()
,它给了我一个
Error!
现在我有3个(多个)条件导致在第一个序列中执行“Error!”,我想知道C如何响应我的多个条件,这可能有助于解决错误
我的代码:
#include <stdio.h>
#include <conio.h>
void main(){
int inp;
while(inp<10 && printf("Error") && getch()){
clrscr();
printf("Enter Number > 10: ");
scanf("%d",&inp);
}
printf("Right Answer!");
getch();
}
#包括
#包括
void main(){
int-inp;
虽然(inpint-inp;
未初始化。同时main
应返回int
。自动变量未初始化为默认值。测试inpint-inp;
未初始化。另外main
应返回int
。自动变量未初始化为默认值。测试inpintmain(){
int-inp=0;
scanf(“%d”和&inp);
而(inpintmain(){
int-inp=0;
scanf(“%d”和&inp);
而(inp根据for C语言,如果您有&&
,| |
或?
处于条件中,则它不会计算所有条件,如果不需要,请参见示例:
if(0 && printf("ERROR!\n"))
printf("OK\n");
将永远不会打印任何文本,因为(0&&whatever)
的计算结果将始终为false,因此它不会在&&
之后的第二个条件下继续,但如果您要更改位置
if(printf("ERROR!\n") && 0)
printf("OK\n");
将只打印错误!
,因为printf(“错误!\n”)
将打印文本并返回大于零(7)的数字,因此条件将减少为(7&&0)
什么将评估这两个条件为false,但将打印您的错误!
消息
当您有更多的&&
运算符时,它们将按从左到右的顺序求值,因此如下所示:
if( ( (inp<10 && printf("Error")) && getch() ) && ... )
如果((inp根据for C语言,如果您有&
,|
或?
处于条件中,则如果不需要,则不会评估所有条件参见示例:
if(0 && printf("ERROR!\n"))
printf("OK\n");
将永远不会打印任何文本,因为(0&&whatever)
的计算结果将始终为false,因此它不会在&&
之后的第二个条件下继续,但如果您要更改位置
if(printf("ERROR!\n") && 0)
printf("OK\n");
将只打印错误!
,因为printf(“错误!\n”)
将打印文本并返回大于零(7)的数字,因此条件将减少为(7&&0)
什么将评估这两个条件为false,但将打印您的错误!
消息
当您有更多的&&
运算符时,它们将按从左到右的顺序求值,因此如下所示:
if( ( (inp<10 && printf("Error")) && getch() ) && ... )
if(((inp)为什么将printf
和getch
置于while状态?它们将更适合于身体。printf(“错误”)
将被clrsc()
清除,并且它返回非零值总是期望printf(“”)
因此它与while条件无关。为什么要将printf
和getch
置于while条件下?它们更适合于身体。printf(“错误”)
将被clrsc()
清除,并且它返回非零值总是期望printf(“”)
因此它与while条件无关。clrsc();
和getch();
不是C标准库的一部分,ISO C也不是由POSIX定义的。clrsc();
和getch();
不是C标准库的一部分,ISO C也不是由POSIX定义的。但这将打印“错误”在用户有机会输入任何内容之前。这太粗鲁了。顺便说一下,这是我的主要问题problem@Daniel-就像我说的-看第二段-它也更容易阅读。但这会打印“错误”在用户有机会输入任何内容之前。这太粗鲁了。顺便说一下,这是我的主要问题problem@Daniel-就像我说的-看第二段-它也更容易阅读。