我能夠解決從編碼網站附加的代碼。但是,我的答案不同於網站的答案。下面貼出的是代碼。無法理解java中的流程控制
static boolean b1, b2;
public static void main(String [] args)
{
int x = 0;
if (!b1) /* Line 7 */
{
if (!b2) /* Line 9 */
{
b1 = true;
x++;
if (5 > 6)
{
x++;
}
if (!b1)
x = x + 10;
else if (b2 = true) /* Line 19 */
x = x + 100;
else if (b1 | b2) /* Line 21 */
x = x + 1000;
}
}
System.out.println(x);
}
}
我的想法:
最初,B1 =假和b2 =假時,它把前兩個如果條件 和套b1至真除了遞增x到> 1的值。從那裏它開始出現問題了每個條件和打印>終值是1。
網站的解決方案:
爲實例變量,B1和B2被初始化爲false。第7行和第9行的if test
成功,因此b1設置爲true,並且x是
遞增。如果測試成功,則在第19行(注意>
代碼未測試以查看b2是否爲真,它將b2設置爲> true)。
由於線路19成功,隨後其他-IF的(21號線)>將
skipped.The x的最終值是101
我不從網站解決方案明白什麼:
「請注意,代碼未測試以查看b2是否爲真,它將 b2設置爲true」。 如何在不測試狀態的情況下將b2的值設置爲「true」?
任何建議可以非常有幫助!
引號應該是引號,而不是代碼 –
這是一種測試讀者注意力的方法,它使用''b2 = true'''而不是''b2 == true''',所以b2被賦值爲真。 – Siddhartha
檢查=的數量。 –