Java字符之間的運算
字符之間的運算的轉換
自動轉換:
int a=12;
double b=10.5;
System.out.println(a+b);
強制轉換:
doublea=12.8;
doubleb=10.3;
int sum= (int) (a+b); //強制類型轉換
System.out.println(sum);
因爲在Java字符中
整型、浮點型和字符型的數據在混合運算中可以相互轉換,這種轉換是自動的,類型轉換時遵循以下原則:
容量小的類型自動轉換爲容量大的類型,當使用byte、short、char進行計算時,會自動轉換成int類型
(byte、short、char) -> int -> long -> float -> double
(字符型會自動轉換成int型,所需要的可以對照ASCII碼)
容量大的類型轉換爲容量小的類型時,需要加上強制轉換符,但是會造成數據的精度降低
有多種類型數據的混合運算時,系統會自動將所有參與運算的類型都轉換成容量最大的類型,然後再進行運算
通俗的說就是:
相當於一個小東西裝進大瓶子裏,不要什麼轉換(自動轉換)
把一個大東西裝進小瓶子裏,就要強制轉換,改變其大小(強制轉換)
練習:寫一個簡單的計算器,輸入兩個double類型的數,得到一個整型數。
importjava.util.Scanner;
public class New{
public static voidmain(String[] args) {
System.out.println("請輸入一個數");
double i=newScanner(System.in).nextDouble();
System.out.println("請再輸入一個數");
double y=newScanner(System.in).nextDouble();
intres=(int)(i+y);
System.out.println("輸出的結果是:"+res);
}
}
算術運算符
++在前,表示先自加再賦值,++在後,表示先賦值再自加
int i=0;
int j=0;
j=++i; //++在前,表示先+1,再賦值
j=i++; //++再後,表示先賦值,再+1
System.out.println(j);
取模運算符
Ps:取模運算中結果的正負取決於第一個數,即被取模數
System.out.println(10 % 3); //1
System.out.println(10 % -3); //1
System.out.println(-10 % 3); //-1
System.out.println(-10 % -3);//-1
字符串連接符
Ps:“+”不僅可以將非字符串數據相加,還可以有字符串拼接的作用
Ps:“+”兩側的操作數中只要有一個是字符串類型,系統會自動將另一個操作數轉換爲字符串然後再進行連接
System.out.println("5+5="+10); //5+5=10
System.out.println("5+5="+5+5); //5+5=55
賦值運算符
賦值運算符的符號有哪些?
=:賦值,int a=2;表示將2這個值賦予變量a
+=:a+=2;等同於a=a+2;
-+:a-=2;等同於a=a-2;
*=:a*=2;等同於a=a*2;
/=:a/=2;等同於a=a/2;
%=:a%=2;等同於a=a%2;
比較運算符
Ps:比較運算符的結構都是布爾型,要麼是true,要麼就是false
Ps:比較運算符“==”不可誤寫成“=”
邏輯運算符
Ps:^異或表示,如果兩個條件相同即爲false,兩個條件相異即爲true。
Ps:&&和||表示,只要第一個條件符合要求,第二個條件將不會去執行;而&和|表示,無論第一個條件是否符合要求,第二個條件都會去執行。
三元運算
三元運算符是怎麼運算的?
條件表達式? 表達式1:表達式2
如果滿足條件true就執行表達式1
如果不滿足條件false就執行表達式2
實例
練習:輸入一個數,判斷這個數是奇數還是偶數
System.out.println("請輸入一個整數");
int a=newScanner(System.in).nextInt();
String res=a%2==0? "偶數":"奇數";
System.out.println(res);
拔高題:輸入一個年份,判斷這一年是閏年還是平年
System.out.println("請輸入一個年份");
int a=newScanner(System.in).nextInt();
String res=a%4==0&a%100!=0|a%400==0? "閏年":"平年";
System.out.println(res);