運算子:對變數等資料進行操作的符號稱為運算子
表示式(exception):使用運算子等符號把資料連起來的語法格式稱為運算子,比如變數a=a+b; a+b就是乙個基本的表示式
常用的運算子:1.算數運算子 2.賦值運算子 3.關係運算子 4.邏輯運算子 5.三元運算子
運算子的使用:
1.算數運算子:用於對變數進行數學計算(+、-、*、/、%、++、--、+=、-=)
+:加號左右都是資料,則加號的作用就是運算;加號左右有字元,則起連線作用
例:要列印輸出:100+200=300
int a=100;
int b=200;
int c=a+b;
sout(a + "+" + b + "+" + "=" + c);
加號計算過程中是順序相加,乙個乙個的往後加
當有不同型別的數值進行計算是,結果的型別取決於精度最高的型別
float d=300.5f;
double e=400.4;
c=a+b+d+e;(這樣寫會丟失精度,左邊c是int型,右邊e和d精度比較高,接收下來會丟失精度)
例子:如果a和b兩個int型,但是兩個的和超過了int型,就要將其中乙個先強轉成long型,不然精度也會丟失
long f=a+b;(精度丟失)
long f=(long)(a+b);(精度丟失)
long f=(long)a+b;(精度不會丟失)
乘積
c=a*b;
商:
e=a/b;
e是double型別,a和b都是int型別
若a=200.b=5則e=40;
若a=10,b=4則e=2,精度會丟失,要想精度不丟失,就要將a和b其中乙個強轉為double型,e=(double)a/b
%表示取餘(將兩數相除,除不盡的為餘數)
例子:假設125個小時,換成天後將餘下幾個小時?
int totalhours=125;
int day=totalhours/24;(天數是直接除,小數部分會自動丟失精度)
int hours=totalhours%24;(取餘獲得的是除不盡的餘數部分)
sout(「共有」+day+"天,餘下"+hours+"個小時");
例子:鍵盤錄入乙個三位數,分別列印這個數的個位、十位、百位;
public static void main(string args){
scanner sc=new scanner(system.in);
sout(「請輸入乙個三位數:」);
int num=sc.nextint();
int n1=num%10;(獲得的是個位數)
int n2=num/10%10;(獲得的是十位數)
int n3=num/100;(獲得的是百位數,小數精度丟失)
sout("個位數是:"+n1+"十位數是:"+n2+"百位數是:"+n3);
++表示自增1:(同樣的a--表示自身減1)(若是表示自身加減值定的數值:a+=3,a-=3)
int a=10;
a++; (此時a等於11)
sout(a);
若是將++寫在列印中
1.前置++表示先執行++,在執行其他操作
2.後置++表示先執行其他,在運算++
int a=10;
sout(++a);(此時a是11)
sout(a++);(此時a是10,但是接著執行其他操作時,a的值為11)
關係運算子:
用於兩個數進行比較的運算子 > < == >= <= !=
=表示賦值,==表示相等
關係運算子的結果是boolean型,結果只為true或者false
比較數值:
int a=10;
int b=10;
sout(a>=b);(true)
sout(a==b);(true)
sout(a!=b);(false)
比較兩個字串:equals() 是object的屬性,所有所有的物件都有這個方法
==比較的是值和位址,equals比較的是值不包括位址
string str1=「hello」;
string str2=sc.next();
sout(str1==str2);(false)
sout(str1.equals(str2));(true)
邏輯運算子:
用於入場交流中 並且、或者、除非等等思想的運算子
&&和||稱為短路運算子,前面的乙個條件滿足則後面的乙個條件不會再進行
& | 和雙的功能一樣,但是不短路,不管前面的滿不滿足,後面的條件都會執行
&& 只要乙個錯就全錯
|| 只要乙個對就全對
int a=10;
sout(++a>=b || ++a==c)
sout(a);
若第乙個條件對了,則第二個條件不會再執行,此時列印a=11 ;
若第乙個條件錯了,則第二個條件執行,此時列印a=12 ;
但是將 || 換成 | 那不管條件對錯,列印都是 a=12;
多種運算子的優先順序:
小括號 > !> 算數運算子 >關係運算子 > && > || > 賦值運算子
!是取反符:對boolean型別的結果取反
基本型別轉為string:
1.要先將基本型別轉成包裝類
int a=10;
integer b=new integer(a);
string s=a.tostring();
2.連線乙個string字串
string s=a+"";
go基本型別和運算子
乙個簡單的列子 var a bool ture bool值只有false和true。兩個相同的型別之間可以通過 或者 來比較獲取乙個bool值。比如 var a 1a 5 false a 1 true a 2 true a 1 false go對於值之間的比較非常嚴格,只有兩個相同的型別的值才可以進...
運算子對基本型別的影響
package com.sdjt.study.jibenleixing author lyy public class test 在s1 s1 1 中,s1 1運算的結果是int型,把它賦值給乙個short型變數s1,所以會報錯 而在s1 1 中,由於是s1是short型別的,所以1首先被強制轉換為...
go學習 go基本型別和運算子
go型別 只能通過顯示型別轉換進行型別間轉換 bool 只有true和false 整形 int8,uint8 byte int16,uint16,int32,uint32,int64,uint64,int和uint與平台相關 浮點數 float32和float64 相當於c的double 複數 co...