Java運算符及程序邏輯控制

在這里插入圖片描述

🎉welcome to my blog
請留下你寶貴的足跡吧(點贊👍評論📝收藏?)
💓期待你的一鍵三連,你的鼓勵是我創作的動力之源💓

🐣目錄

  • 🍀運算符
    • 📚1.算術運算符
      • 📖1.1基本四則運算符
      • 📖1.2增量運算符
      • 📖1.3自增/自減運算符
    • 📚2.關系運算符
    • 📚3.邏輯運算符
      • 📖3.1邏輯與 &&
      • 📖3.2邏輯或 ||
      • 📖3.3邏輯非 !
      • 📖3.4短路求值
    • 📚4.位運算符
      • 📖4.1按位與 &
      • 📖4.2按位或 |
      • 📖4.3按位取反 ~
      • 📖4.4按位異或 ^
    • 📚5.移位運算
      • 📖5.1左移 <<
      • 📖5.2右移 >>
      • 📖5.3無符號右移 >>>
    • 📚6.條件運算符
    • 📚7.運算符的優先級
  • 🍀邏輯控制
    • 📚1順序結構
    • 📚2分支結構
        • 📖2.1 if 語句
        • 📖2.2 switch 語句
    • 📚3.循環結構
      • 📖3.1 while 循環
      • 📖3.2 break
      • 📖3.3 continue
      • 📖3.4 for 循環
    • 📚4.do while 循環
    • 📚5.輸入輸出
      • 📖5.1輸出到控制臺
      • 📖5.2 從鍵盤輸入
    • 📚6.猜數字游戲

🍀運算符

運算符即對操作數進行操作時的符號,不同運算符操作的含義不同

Java中運算符可分為:算術運算符(+ - * /)、關系運算符(< > ==)、邏輯運算符、位運算符、移位運算符以及條件運算符等

📚1.算術運算符

📖1.1基本四則運算符

加減乘除模(+ - * / %)

int a = 20;
int b = 10;System.out.println(a + b);     // 30
System.out.println(a - b);     // 10
System.out.println(a * b);     // 200
System.out.println(a / b);     // 2
System.out.println(a % b);     // 0 --->模運算相當于數學中除法的余數

注意📚:

🍃都是二元運算符,使用時必須要有左右兩個操作數

🍃int / int 結果還是int類型,而且會向下取整

int a = 3;
int b = 2;
System.out.println(a / b);
//在數學中應該是1.5 但是在Java中輸出結果為1 會向下取整,即小數點之后全部舍棄掉了
// 如果要得到數學中的結果,可以使用如下方式
double d = a*1.0 / b;
System.out.println(d);

🍀做除法和取模時,右操作數不能為0

int a = 1;
int b = 0;
System.out.println(a / b)
// 運行結果
Exception in thread "main" java.lang.ArithmeticException: / by zeroat Test.main(Test.java:5)

🍀% 不僅可以對整型取模,也可以對double類型取模,但是沒有意義,一般都是對整型取模的

System.out.println(11.5 % 2.0);
// 運行結果
1.5

🍀兩側操作數類型不一致時,向類型大的提升

System.out.println(1+0.2);   // +的左側是int,右側是double,在加之前int被提升為double// 故:輸出1.2

📖1.2增量運算符

+= -= *= %=

該種類型運算符操作完成后,會將操縱的結果賦值給左操作數

int a = 1;
a += 2;                  // 相當于 a = a + 2
System.out.println(a);   // 輸出3a -= 1;                  // 相當于 a = a - 1
System.out.println(a);   // 輸出2a *= 3;                  // 相當于 a = a * 3
System.out.println(a);   // 輸出6a /= 3;                  // 相當于 a = a / 3
System.out.println(a);   // 輸出2a %= 3;                  // 相當于 a = a % 2
System.out.println(a);   // 輸出2long b=3;
//a=a+b;//a+b為long類型,a為int類型,故此處會報錯
//若寫成如下形式就不會報錯了
a+=b;                     
System.out.println(a);    // 輸出4

注意👀: 只有變量才能使用該運算符,常量不能使用

📖1.3自增/自減運算符

++是給變量的值+1,–是給變量的值-1

int a = 1;
a++;    // 后置++   表示給a的值加1,此時a的值為2
System.out.println(a++);   // 注意:后置++是先使用變量原來值,表示式結束時給變量+1,因此輸出2
System.out.println(a);     // 輸出3++a;    // 前置++   表示給a的值加1
System.out.println(++a);   // 注意:前置++是先給變量+1,然后使用變量中的值,因此輸出5
System.out.println(a);     // 輸出5// --操作符給操作-1,與++含義類似

注意📖:

🌈如果單獨使用,【前置++】和【后置++】沒有任何區別

🌈如果混合使用,【前置++】先+1,然后使用變量+1之后的值,【后置++】先使用變量原來的值,表達式 結束時給變量+1

🌈只有變量才能使用自增/自減運算符,常量不能使用,因為常量不允許被修改

📚2.關系運算符

關系運算符主要有六個: == != < > <= >= ,其計算結果是 true 或者 false

int a = 10;
int b = 20;
// 注意:在Java中 = 表示賦值,要與數學中的含義區分
//     在Java中 == 表示相等
System.out.println(a == b);       // false
System.out.println(a != b);       // true
System.out.println(a < b);        // true
System.out.println(a > b);        // false
System.out.println(a <= b);       // true
System.out.println(a >= b);       // false

**注意??:**當需要多次判斷時,不能連著寫,比如:3 < a < 5,true/false不能和5比較大小

📚3.邏輯運算符

邏輯運算符主要有三個: && || ! ,運算結果都是 boolean類型

📖3.1邏輯與 &&

🌟語法規則:表達式1 && 表達式2,左右表達式必須是boolean類型的結果

🌟相當于現實生活中的且

🌟兩個表達式都為真,結果才為真,只要有一個為假,結果就為假

int a = 1;
int b = 2;System.out.println(a == 1 && b == 2);   // 左為真 且 右為真 則結果為真
System.out.println(a == 1 && b > 100);  // 左為真 但 右為假 則結果為假
System.out.println(a > 100 && b == 2);  // 左為假 但 右為真 則結果為假
System.out.println(a > 100 && b > 100); // 左為假 且 右為假 則結果為假

📖3.2邏輯或 ||

🌲語法規則:表達式1 || 表達式2,左右表達式必須是boolean類型的結果

🌲相當于現實生活中的或

🌲若結果為真,則左右表達式至少有一個為真

int a = 1;
int b = 2;System.out.println(a == 1 || b == 2);   // 左為真 且 右為真 則結果為真
System.out.println(a == 1 || b > 100);  // 左為真 但 右為假 則結果也為真
System.out.println(a > 100 || b == 2);  // 左為假 但 右為真 則結果也為真
System.out.println(a > 100 || b > 100); // 左為假 且 右為假 則結果為假

📖3.3邏輯非 !

🌴語法規則:! 表達式

🌴真變假,假變真。

int a = 1;
System.out.println(!(a == 1));   // a == 1 為true,取個非就是false
System.out.println(!(a != 1));  // a != 1 為false,取個非就是true

📖3.4短路求值

&& 和 || 遵守短路求值的規則

System.out.println(10 > 20 && 10 / 0 == 0);             // 打印 false
System.out.println(10 < 20 || 10 / 0 == 0);             // 打印 true

計算 10 / 0 會導致程序拋出異常. 但是上面的代碼卻能正常運行, 說明 10 / 0 并沒有真正被求值.

注意📚:

🍃對于 && , 如果左側表達式值為 false, 則表達式結果一定是 false, 無需計算右側表達式.

🍃對于 ||, 如果左側表達式值為 true, 則表達式結果一定是 true, 無需計算右側表達式.

🍃& 和 | 如果表達式結果為 boolean 時, 也表示邏輯運算. 但與 && || 相比, 它們不支持短路求值.

System.out.println(10 > 20 & 10 / 0 == 0);             // 程序拋出異常
System.out.println(10 < 20 | 10 / 0 == 0);             // 程序拋出異常
System.out.println(10 > 20 & 10>0);                    //false
System.out.println(10 < 20 & 10>0);                    //true

📚4.位運算符

Java中數據存儲的最小單位是字節,而數據操作的最小單位是比特位. 字節是最小的存儲單位,每個字節是由8個二進制比特位組成的,多個字節組合在一起可以表示各種不同的數據

位運算符主要有四個: & | ~ ^ ,除 ~ 是一元運算符外,其余都是二元運算符

位操作表示按二進制位運算. 計算機中都是使用二進制來表示數據的(01構成的序列), 按位運算就是在按照二進制位的每一位依次進行計算

📖4.1按位與 &

如果兩個二進制位都是1, 則結果為1, 否則結果為 0

int a = 10;
int b = 20;
System.out.println(a & b);

進行按位運算, 需要先把10和20轉化成二進制, 分別為1010和10100

📖4.2按位或 |

如果兩個二進制位都是0, 則結果為0, 否則結果為1

int a = 10;
int b = 20;
System.out.println(a | b);

運算方式和按位于類似:

注意📒:

當 & 和 | 的操作數為整數(int, short, long, byte) 的時候, 表示按位運算, 當操作數為 boolean 的時候, 表 示邏輯運算.

📖4.3按位取反 ~

如果該位為0 則轉為1, 如果該位為1 則轉為0

int a = 0xf;
System.out.printf("%x\n", ~a)

注意📚:

🌴0x 前綴的數字為十六進制數字. 十六進制可以看成是二進制的簡化表示方式. 一個十六進制數字對應4 個二進制位.

🌴0xf 表示10進制的15, 也就是二進制的1111

🌴printf 能夠格式化輸出內容, %x 表示按照十六進制輸出

🌴\n 表示換行符

📖4.4按位異或 ^

如果兩個數字的二進制位相同, 則結果為 0, 相異則結果為 1.

int a = 0x1;
int b = 0x2;
System.out.printf("%x\n", a ^ b);

注意👀: 如果兩個數相同,則異或的結果為0

📚5.移位運算

移位運算符有三個: << >> >>> ,都是二元運算符,且都是按照二進制比特位來運算的

📖5.1左移 <<

最左側位不要了, 最右側補 0

int a = 0x10;//十六進制0x10,對應十進制為16,二進制為00010000
System.out.printf("%x\n", a << 1);//左移最左側位不要了, 最右側補0,得二進制00100000,對應十進制32,十六進制0x20// 運行結果(注意, 是按十六進制打印的)
20

注意📚: 向左移位時,丟棄的是符號位,因此正數左移可能會變成負數

📖5.2右移 >>

最右側位不要了, 最左側補符號位(正數補0, 負數補1)

int a = 0x10;//十六進制0x10,對應十進制為16,二進制為00010000
System.out.printf("%x\n", a >> 1);//右移最右側位不要了, 最左側補符號位(正數補0, 負數補1),得二進制00001000,對應十進制8,十六進制0x8// 運行結果(注意, 是按十六進制打印的)
8int b = 0x??0000;
System.out.printf("%x\n", b >> 1);// 運行結果(注意, 是按十六進制打印的)
??8000

📖5.3無符號右移 >>>

最右側位不要了, 最左側補0.

int a = 0x????;
System.out.printf("%x\n", a >>> 1);// 運行結果(注意, 是按十六進制打印的)
7f???

注意📖:

  1. 左移 1 位, 相當于原數字 *2. 左移 N 位, 相當于原數字 * 2 的N次方.
  2. 右移 1 位, 相當于原數字 / 2. 右移 N 位, 相當于原數字 / 2 的N次方.
  3. 由于計算機計算移位效率高于計算乘除, 當某個代碼正好乘除 2 的N次方的時候可以用移位運算代替.
  4. 移動負數位或者移位位數過大都沒有意義.

📚6.條件運算符

條件運算符只有一個: 表達式1 ? 表達式2 : 表達式3

當表達式1 的值為 true 時, 整個表達式的值為 表達式2 的值;

當表達式1 的值為 false 時, 整個表達式的值為 表達式3 的值.

也是 Java 中唯一的一個 三目運算符, 是條件判斷語句的簡化寫法.

// 求兩個整數的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;

注意📒:

  1. 表達式2和表達式3的結果要是同類型的,除非能發生類型隱式類型轉換
int a = 10;
int b = 20;
int c = a > b? 1 : 2.0;

2.表達式不能單獨存在,其產生的結果必須要被使用

int a = 10;
int b = 20;
a > b? a : b;     // 報錯:Error:(15, 14) java: 不是語句

📚7.運算符的優先級

在一條表達式中,各個運算符可以混合起來進行運算,但是運算符的優先級不同,比如:* 和 / 的優先級要高于 + 和 -

// 求a和b的平均值
int a = 10;
int b = 20;
int c = a + (b - a) >> 1;
System.out.println(c);

上述表達式中,由于 + 的優先級要高于 >> , 因此a先和b-a的結果做加法,整體為20,最后再進行右移,因此結果 為10

**注意🌴:**運算符之間是有優先級的. 具體的規則不必記憶. 在可能存在歧義的代碼中加上括號即可.

// 求a和b的平均值
int a = 10;
int b = 20;
int c = a + ((b - a) >> 1);
System.out.println(c);

🍀邏輯控制

📚1順序結構

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");// 運行結果
aaa
bbb
ccc

如果調整代碼的書寫順序, 則執行順序也發生變化

System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");// 運行結果
aaa
ccc
bbb

📚2分支結構

📖2.1 if 語句
  1. 語法格式1

    if(布爾表達式){// 語句
    }
    

    如果布爾表達式結果為true,執行if中的語句,否則不執行

    注意??:

    int a=10;
    if(a){}//a不是布爾表達式而是整型,故此代碼會報錯
    
  2. 語法格式2

    if(布爾表達式){// 語句1
    }else{// 語句2
    }
    

    如果布爾表達式結果為true,則執行if中語句,否則執行else中語句

    3.語法格式3

    if(布爾表達式1){// 語句1
    }else if(布爾表達式2){// 語句2
    }else{// 語句3
    }
    

    表達式1成立,執行語句1,否則表達式2成立,執行語句2,否則執行語句3

    【練習】

1.判斷一個數字是奇數還是偶數

int num = 10;
if (num % 2 == 0) {System.out.println("num 是偶數");
} else {System.out.println("num 是奇數");
}

2.判斷一個數字是正數,負數,還是零

int num = 10;
if (num > 0) {System.out.println("正數");
} else if (num < 0) {System.out.println("負數");
} else {System.out.println("0");
}

3.判斷一個年份是否為閏年

int year = 2000;
if (year % 100 == 0) {// 判定世紀閏年if (year % 400 == 0) {System.out.println("是閏年");} else {System.out.println("不是閏年");}
} else {// 普通閏年if (year % 4 == 0) {System.out.println("是閏年");} else {System.out.println("不是閏年");}
}

【注意事項】

1.代碼風格

// 風格1-----> 推薦
int x = 10;
if (x == 10) {// 語句1
} else {// 語句2
}// 風格2
int x = 10;
if (x == 10)
{// 語句1
}
else
{// 語句2
}

雖然兩種方式都是合法的, 但是 Java 中更推薦使用風格1, { 放在 if / else 同一行. 代碼跟緊湊

2.分號問題

int x = 20;
if (x == 10); 
{System.out.println("hehe");
}// 運行結果
hehe

此處多寫了一個 分號, 導致分號成為了 if 語句的語句體, 而 { } 中的代碼已經成為了和一個 if 無關的代碼塊

3.懸垂 else 問題

int x = 10;
int y = 10;
if (x == 10) if (y == 10)System.out.println("aaa");
else System.out.println("bbb");

if / else 語句中不加 大括號也可以寫語句(只能寫一條語句). 此時 else 和最接近的 if 匹配.

但是實際開發中不建議這么寫. 最好加上大括號

📖2.2 switch 語句

基本語法

switch(表達式){case 常量值1:{語句1;[break;]}case 常量值2:{語句2;[break;]}...default:{內容都不滿足時執行語句;[break;]} 
}

執行流程:

  1. 先計算表達式的值
  2. 和case依次比較,一旦有響應的匹配就執行該項下的語句,直到遇到break時結束
  3. 當表達式的值沒有與所列項匹配時,執行default

代碼示例: 根據 day 的值輸出星期

int day = 1;
switch(day) {case 1:System.out.println("星期一");break;case 2:System.out.println("星期二");break;case 3:System.out.println("星期三");break;case 4:System.out.println("星期四");break;case 5:System.out.println("星期五");break;case 6:System.out.println("星期六");break;case 7:System.out.println("星期日");break;default:System.out.println("輸入有誤");break;
}

【注意事項】📚

🌳多個case后的常量值不可以重復

🌳switch的括號內只能是以下類型的表達式:

? 🍃基本類型:byte、char、short、int,注意不能是long, float, double, boolean類型

? 🍃引用類型:String常量串、枚舉類型

double num = 1.0;
switch(num) {case 1.0:System.out.println("hehe");break;case 2.0:System.out.println("haha");break;
}// 編譯出錯
Test.java:4: 錯誤: 不兼容的類型:double轉換到int可能會有損失switch(num) {^
1 個錯誤

🌳break 不要遺漏, 否則會失去 “多分支選擇” 的效果

int day = 1;
switch(day) {case 1:System.out.println("星期一");// break;case 2:System.out.println("星期二");break;
}// 運行結果
星期一
星期二

🌳switch 不能表達復雜的條件

// 例如: 如果 num 的值在 10 到 20 之間, 就打印 hehe
// 這樣的代碼使用 if 很容易表達, 但是使用 switch 就無法表示. 
if (num > 10 && num < 20) {System.out.println("hehe");
}

🌳switch 雖然支持嵌套, 但是不太美觀,一般不推薦~

int x = 1;
int y = 1;
switch(x) {case 1:switch(y) {case 1:System.out.println("hehe");break;}break;case 2:System.out.println("haha");break;
}

📚3.循環結構

📖3.1 while 循環

基本語法格式:

while(循環條件){循環語句;
}

循環條件為 true, 則執行循環語句; 否則結束循環

代碼示例1: 打印 1 - 10 的數字

int num = 1;
while (num <= 10) {System.out.println(num);num++;
}

代碼示例2: 計算 1 - 100 的和

int n = 1;
int result = 0;
while (n <= 100) {result += n;n++;
}
System.out.println(num);// 執行結果
5050

代碼示例3: 計算 5 的階乘

int n = 1;
int result = 1;
while (n <= 5) {result *= n;n++;
}
System.out.println(num);// 執行結果
120

代碼示例4: 計算 1! + 2! + 3! + 4! + 5!

int num = 1;
int sum = 0;
// 外層循環負責求階乘的和
while (num <= 5) {int factorResult = 1;int tmp = 1;// 里層循環負責完成求階乘的細節. while (tmp <= num) {factorResult *= tmp;tmp++;}sum += factorResult;num++;
}
System.out.println("sum = " + sum);

注意事項 📚:

  1. 和 if 類似, while 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }
  2. 和 if 類似, while 后面的 { 建議和 while 寫在同一行.
  3. 和 if 類似, while 后面不要多寫 分號, 否則可能導致循環不能正確執行.
int num = 1;
while (num <= 10); {System.out.println(num);num++;
}// 執行結果
[無任何輸出, 程序死循環]

此時 ; 為 while 的語句體(這是一個空語句), 實際的 { } 部分和循環無關. 此時循環條件 num <= 10 恒成立, 導致代碼 死循環了.

📖3.2 break

break 的功能是讓循環提前結束.

代碼示例: 找到 100 - 200 中第一個 3 的倍數

int num = 100;
while (num <= 200) {if (num % 3 == 0) {System.out.println("找到了 3 的倍數, 為:" + num);break;}num++;
}// 執行結果
找到了 3 的倍數,:102

執行到 break 就會讓循環結束.

📖3.3 continue

continue 的功能是跳過這次循環, 立即進入下次循環.

代碼示例: 找到 100 - 200 中所有 3 的倍數

int num = 100;
while (num <= 200) {if (num % 3 != 0) {num++;  // 這里的 ++ 不要忘記! 否則會死循環. continue;}System.out.println("找到了 3 的倍數, 為:" + num);num++;
}

執行到 continue 語句的時候, 就會立刻進入下次循環(判定循環條件), 從而不會執行到下方的打印語句.

📖3.4 for 循環

【基本語法】

for(表達式①;布爾表達式②;表達式③){表達式④;
}

🌴表達式1: 用于初始化循環變量初始值設置,在循環最開始時執行,且只執行一次

🌴表達式2: 循環條件,滿則循環繼續,否則循環結束

🌴表達式3: 循環變量更新方式

【執行過程】

①②③④—>②③④—>②③④—>②③④—>②③④—>②③④—>…—>②為false,循環結束

【代碼示例】

  1. 打印 1 - 10 的數字

    for (int i = 1; i <= 10; i++) {System.out.println(i);
    }
    

    2.計算 1 - 100 的和

    int sum = 0;
    for (int i = 1; i <= 100; i++) {sum += i;
    }
    System.out.println("sum = " + sum);// 執行結果
    5050
    

    3.計算 5 的階乘

    int result = 1;
    for (int i = 1; i <= 5; i++) {result *= i;
    }
    System.out.println("result = " + result);
    
  2. 計算 1! + 2! + 3! + 4! + 5!

    int sum = 0;
    for (int i = 1; i <= 5; i++) {int tmp = 1;for (int j = 1; j <= i; j++) {tmp *= j;}sum += tmp;
    }
    System.out.println("sum = " + sum);
    

    【注意事項】 (和while循環類似)

    1. 和 if 類似, for 下面的語句可以不寫 { } , 但是不寫的時候只能支持一條語句. 建議還是加上 { }
    2. 和 if 類似, for 后面的 { 建議和 while 寫在同一行.
    3. 和 if 類似, for 后面不要多寫 分號, 否則可能導致循環不能正確執行.
    4. 和while循環一樣,結束單趟循環用continue,結束整個循環用break

📚4.do while 循環

【基本語法】

do{循環語句;
}while(循環條件);

先執行循環語句, 再判定循環條件,循環條件成立則繼續執行,否則循環結束

例如:打印 1 - 10

int num = 1;
do {System.out.println(num);num++;
} while (num <= 10);

【注意事項】

  1. do while 循環最后的分號不要忘記
  2. 一般 do while 很少用到, 更推薦使用 for 和 while.

📚5.輸入輸出

📖5.1輸出到控制臺

基本語法

System.out.println(msg);            // 輸出一個字符串, 帶換行
System.out.print(msg);              // 輸出一個字符串, 不帶換行
System.out.printf(format, msg); // 格式化輸出

🌴println 輸出的內容自帶 \n

🌴print 不帶 \n printf 的格式化輸出方式和 C 語言的 printf 是基本一致的.

代碼示例

System.out.println("hello world");int x = 10;
System.out.printf("x = %d\n", x)

格式化字符串

📖5.2 從鍵盤輸入

使用 Scanner 讀取字符串/整數/浮點數

import java.util.Scanner;  // 需要導入 util 包Scanner sc = new Scanner(System.in);
System.out.println("請輸入你的姓名:");
String name = sc.nextLine();
System.out.println("請輸入你的年齡:");
int age = sc.nextInt();
System.out.println("請輸入你的工資:");
?oat salary = sc.nextFloat();
System.out.println("你的信息如下:");
System.out.println("姓名: "+name+"\n"+"年齡:"+age+"\n"+"工資:"+salary);
sc.close(); // 注意, 要記得調用關閉方法// 執行結果
請輸入你的姓名:
張三
請輸入你的年齡:
18
請輸入你的工資:
1000
你的信息如下:
姓名: 張三
年齡:18
工資:1000.0
Scanner sc = new Scanner(System.in);
System.out.println("請輸入字符串:");
String str=sc.nextLine();
String arr=sc.next();
System.out.println("輸出結果如下:");
System.out.println(str);
System.out.println(arr);
sc.close();//執行結果
請輸入字符串:
hi computer
hi computer
輸出結果如下:
hi computer
hi//一般推薦使用nextLine(),可讀取空格
//而next()不可讀取空格

使用 Scanner 循環讀取 N 個數字,并求取其平均值

Scanner sc = new Scanner(System.in);
int sum = 0;
int num = 0;
while (sc.hasNextInt()) {int tmp = sc.nextInt();sum += tmp;num++;
}
System.out.println("sum = " + sum);
System.out.println("avg = " + sum / num);
sc.close();// 執行結果
10
40.0
50.5
^Z
sum = 150.5
avg = 30.1

注意事項: 當循環輸入多個數據的時候, 使用 ctrl + z 來結束輸入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d).

📚6.猜數字游戲

游戲規則:

系統自動生成一個隨機整數(1-100), 然后由用戶輸入一個猜測的數字. 如果輸入的數字比該隨機數小, 提示 "低 了", 如果輸入的數字比該隨機數大, 提示 "高了" , 如果輸入的數字和隨機數相等, 則提示 "猜對了" 
import java.util.Scanner;
import java.util.Random;
import java.util.Scanner;;class Test {public static void main(String[] args) {Random random = new Random(); // 默認隨機種子是系統時間Scanner sc = new Scanner(System.in);int toGuess = random.nextInt(100);// System.out.println("toGuess: " + toGuess);while (true) {System.out.println("請輸入要輸入的數字: (1-100)");int num = sc.nextInt();if (num < toGuess) {System.out.println("低了");} else if (num > toGuess) {System.out.println("高了");} else {System.out.println("猜對了");break;}}sc.close();}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20314.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

centos7安裝jq報錯No package jq available

安裝EPEL倉庫 sudo yum install epel-release清理軟件倉緩存 sudo yum clean all重建軟件倉緩存 sudo yum makecache重新安裝jq yum install jq

python基礎知識點(藍橋杯python科目個人復習計劃67)

今日復習內容&#xff1a;做一下昨天的算法賽題目&#xff0c;試試基礎怎樣 小白挑戰賽一共6題&#xff0c;我只會5題&#xff0c;而且這5題是全對的&#xff0c;比起上次的兩題&#xff0c;已經有進步了。 第一題&#xff1a;六一獻禮 題目描述&#xff1a; 六月的陽光熱情…

python判斷文件是否存在

import os test_path "/Users/yxk/Desktop/test/GrayScale.tif" if(os.path.exists(test_path)):print(文件存在&#xff01;&#xff01;&#xff01;&#xff01;) else:print("文件不存在&#xff01;&#xff01;&#xff01;&#xff01;")結果如下 …

net前端怎么集成:探索集成之道

net前端怎么集成&#xff1a;探索集成之道 在軟件開發領域&#xff0c;前端集成是一個復雜而關鍵的環節。特別是在.NET框架中&#xff0c;前端集成的成功與否直接影響著應用程序的整體性能和用戶體驗。本文將深入剖析net前端集成的四個方面、五個方面、六個方面和七個方面&…

RabbitMQ(四)事務消息,惰性隊列,優先隊列

文章目錄 事務消息概念配置 惰性隊列概念應用場景 優先隊列概念配置 事務消息 僅在生產者端有效&#xff0c;消費端無效 概念 總結&#xff1a; 在生產者端使用事務消息和消費端沒有關系在生產者端使用事務消息僅僅是控制事務內的消息是否發送提交事務就把事務內所有消息都發送…

Python知識點13---面向對象的編程

提前說一點&#xff1a;如果你是專注于Python開發&#xff0c;那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了&#xff0c;而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python是一個完全面向對象開發的語言&#xff0c;它的一切都以對象的…

Java面試——專業技能

優質博文&#xff1a;IT-BLOG-CN 一、簡單講下 Java 的跨平臺原理 由于各個操作系統&#xff08;Windows&#xff0c;Linux等&#xff09;支持的指令集不是完全一致的。就會讓我們程序在不同的操作系統上要執行不同的程序代碼。Java 開發了適用于不同操作系統及位數的 Java 虛擬…

【教程】自監督 對比學習,代碼,爽學一波

from&#xff1a; https://docs.lightly.ai/self-supervised-learning/examples/simclr.html

代碼隨想錄第22天|回溯part2 組合總和III電話號碼的字母組合

216.組合總和III 當組合的數量為k就判斷和&#xff0c;并且返回。 在枚舉的時候可以進行剪枝&#xff0c;如果總和已經超過了n&#xff0c;那么就沒必要繼續遞歸下去了 class Solution { public:vector<int> path;vector<vector<int>> res;void backTrackin…

微信小程序手機號碼授權登錄

文章目錄 一、微信小程序開發二、使用步驟1.前端代碼2.后臺配置3.后臺代碼 總結 一、微信小程序開發 目前個人的小程序無法使用手機號碼授權登錄&#xff0c;可以使用測試號進行開發 二、使用步驟 1.前端代碼 代碼如下&#xff08;示例&#xff09;&#xff1a; <butto…

Java版本家政上門系統源碼,自主研發、安全可控,支持任意二次開發

家政上門系統源碼&#xff0c;Java版本&#xff0c;自主研發、安全可控。支持任意二次開發、有豐富合作案例。多端管理&#xff1a;管理端、用戶端、服務端。 技術參數&#xff1a; 技術架構&#xff1a;springboot、mysql 、Thymeleaf 開發語言&#xff1a;java1.8、vue 開…

python 象棋小游戲代碼

以下是一個簡單的Python象棋小游戲的代碼示例。這個示例使用了pygame庫來創建圖形用戶界面和處理用戶輸入。 首先&#xff0c;確保安裝了pygame庫&#xff1a; pip install pygame 然后&#xff0c;可以運行以下代碼&#xff1a; import pygame import sys # 初始化pygam…

軟件開發步驟詳解

一、引言 隨著信息技術的迅猛發展&#xff0c;軟件已成為現代社會不可或缺的一部分。無論是企業運營、個人生活還是科學研究&#xff0c;都離不開各種軟件的支持。因此&#xff0c;掌握軟件開發的步驟和技巧對于IT從業者來說至關重要。本文旨在詳細介紹軟件開發的整個流程&…

Python知識點7---字典與集合

提前說一點&#xff1a;如果你是專注于Python開發&#xff0c;那么本系列知識點只是帶你入個門再詳細的開發點就要去看其他資料了&#xff0c;而如果你和作者一樣只是操作其他技術的Python API那就足夠了。 Python的字典與集合是沒有下標一說的&#xff0c;字典說的其實就是ma…

使用機器學習做醫學圖像分類的開源項目集錦

項目名稱倉庫描述主要特點適配建議U-Net用于生物醫學圖像分割zhixuhao/unetKeras中的U-Net實現&#xff0c;用于2D圖像分割。 - 基本的U-Net架構 - 生物醫學圖像訓練示例 - 簡單的數據加載器 - 修改數據加載器以處理特定MRI格式 - 調整訓練管道以適應STIR序列和標簽 使用PyTor…

更改Web網站設計——css和css框架

雖然使用HTML可以定義文章的結構&#xff0c;但是其中不包含設計相關的信息。此時CSS就派上用場&#xff0c;可以用它對HTML文章指定設計樣式。由于可以決定Web網頁的外觀風格&#xff0c;因此&#xff0c;它有時也被稱為格式表。 如果使用CSS設置背景色&#xff0c;文…

計算機網絡期末復習(1)計算機網絡在信息時代對的作用 計算機網絡的定義和分類 三種交換方法

計算機網絡在信息時代扮演著至關重要的角色&#xff0c;它極大地改變了我們生活、工作和學習的方式。 計算機網絡在信息時代的作用 信息共享與傳播&#xff1a;計算機網絡使全球范圍內的信息快速共享成為可能&#xff0c;無論是新聞、學術研究還是娛樂內容&#xff0c;都可以…

初識 JavaScript

目錄 1. 什么是 JavaScript2. JS 引入方式2.1 內部引入方式2.2 外部引入方式 3. JS 中的注釋4. JS 中的結束符5. 輸入和輸出5.1 輸出5.2 輸入 6. 變量與常量6.1 變量的聲明6.2 變量的賦值6.3 常量 7. JS 中的數據類型8. JS 中的類型轉換8.1 隱式轉換8.2 顯式轉換 正文開始 1. …

Java 多線程相關面試題

1. ConcurrentHashMap的讀是否要加鎖&#xff0c;為什么? 讀操作沒有加鎖&#xff0c;目的是為了進一步降低鎖沖突的概率&#xff0c;為了保證讀到剛修改的數據&#xff0c;搭配了volatile 關鍵字&#xff1b; 2. 介紹下 ConcurrentHashMap 的鎖分段技術? 這個是 Java1.7 …

TP8 定時任務yzh52521/http-crontab 教程

官方文檔&#xff1a; https://www.thinkphp.cn/ext/36 源碼倉&#xff1a; http-crontab: 接口化秒級定時任務管理 GitHub - yuanzhihai/http-crontab: 接口化秒級定時任務管理 參考案例&#xff1a; http-crontab:Workerman ThinkPHP6 實現后臺可視化定時任務管理 htt…