這個回圈在使用(||) "OR "運算子時被打破,但在使用(&&) "AND "運算子時卻沒有被打破。這是為什么呢?兩者之間有什么區別?
int a;
char ch;
for(a=1; a<=20; a )
{
printf("%d
",a)。
printf("do you want to break the loop(y/n)")。
scanf(" %c",&ch)。
if(ch=='y' && ch=='Y')
{
break。
}
}
return 0;
}
uj5u.com熱心網友回復:
宣告
if (ch=='Y' && ch=='Y')
{
break。
}
說 "如果該字符同時是字符y和字符Y,則退出回圈。" 但是這不可能發生,因為一個字符不可能同時是y和Y。
另一方面,代碼
if (ch=='y'/span> || ch=='Y'/span>)
{
break;
}
說 "如果字符是y或Y,則退出回圈。" 而一個字符確實有可能是y或Y中的一個,即使它不能同時是。
uj5u.com熱心網友回復:
首先你要知道&&和||之間的區別
什么是邏輯AND(&&)?
當你在陳述句之間使用邏輯和,即&&時,它將瀏覽所有這些陳述句并檢查條件中的每一條陳述句。
if ( ch == 'Y' & & ch1 == 'y')
{
//這里它檢查兩個條件。
//當兩個條件都為真時,if塊將被執行。
}
什么是邏輯OR (||)?
邏輯OR ( || ) 是指試圖找到一個可能的條件為真。
當你使用||放入多個條件時,編譯器不會檢查所有的條件,當它遇到一個有效的條件時就會停止檢查。
if ( ch == 'Y' || ch1 == 'y')
{
//如果你輸入了任何值。
//當兩者中的任何一個條件為真,那么
//你的if塊將被執行。
}
根據你的假設,你必須給出兩個有效的輸入來打破if陳述句
int a;
char ch;
char ch1;
for(a=1; a<=20; a )
{
printf("%d
",a)。
printf("Do you want to break the loop y/n : ");
scanf(" %c",&ch)。
printf("
你確定Y/N : ")。
scanf(" %c"/span>,&ch1)。
if(ch=='y' & & ch1=='Y')
{
break。
}
}
return 0;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/309986.html
標籤:
