C\#연산 자의 이산 수 연산 자

할당 연산 자 에 도 연산 자 와 결 합 된 용법 이 있 습 니 다.이전 부록 에서 언급 되 었 습 니 다.용법 은 x 에 4 를 더 한 다음 에 x 에 게 할당 하면 x+=4 로 쓸 수 있 습 니 다.
 
public class MathOps{
public static void main(String [] args){
Random rand=new Random(47);
int i,j,k;
j=rand.nextInf(100)+1;
System.out.println("j:"+j);
k=rand.nextInt(100)+1;
System.out.println("k:"+k);
i=j-k;
System.out.println("j-k:"+i);
i=k/j;
System.out.println("k/j:"+i);
i=k*j;
System.out.println("k*j:"+i);
j%=k;
System.out.println("i%=k:"+j);
float u,v,w;
v=rand.nextFloat();
System.out.println("v:"+v);
w=rand.nextFloat();
System.out.println("w:"+w);
u=v+w;
System.out.printlln("v+w:"+u);
u=v-w;
System.out.println("v-w:"+u);
u=v*w;
System.out,print("v*w"+u);
u=v/w;
System.out.print("v/w:"+u);
u+=v;
System.out.print("u+=v:"+u);
u-=v;
System.out.print("u-=v:"+u);
u*=v;
System.out.print("u*=v:"+u);
u/=v;
System.out.print("u/=v:"+u);
}
}
출력:j:59;k:56; j+k:115; j-k:3; k/j:0; k*j:3304; k%j:56; j%=k:3; v:0.5309454; w:0.0534122 v+w:0.5843576 v-w:0.47753322 v*w:0.028358962 v/w:9.94025 u+=v:10.471473 u-=v:9.940527 u*=v:5.27787773 u/=v:9.940527 랜 덤 클래스 의 대상 을 통 해 프로그램 은 다양한 유형의 랜 덤 숫자 를 생 성 할 수 있다.방법 은 간단 합 니 다.방법 nextInt()와 nextFloat()만 호출 하면 됩 니 다(또는 nextLong()또는 nextDouble()).nextInt()에 전 달 된 매개 변 수 는 무 작위 수의 상한 선 을 설정 하고 오프라인 은 0 이지 만 이 오프라인 은 우리 가 원 하 는 것 이 아니 라 0 을 제외 할 가능성 이 있 기 때문에+1 작업 을 했다.1 원 연산 자 에서 컴 파일 러 는 자동 으로+,-호의 역할 을 판단 합 니 다.예 를 들 어 x=a*-b;컴 파일 러 는 그 의 미 를 컴 파일 할 수 있다.b 전-번 호 는 마이너스 이지 만 독자 들 이 헷 갈 리 지 않도록 가장 좋 은 방법 은 x=a*(-b)1 원 마이너스 번 호 는 데 이 터 를 바 꾸 는 기호 이 고 1 원 플러스 번 호 는 1 원 마이너스 번호 와 대응 하기 위 한 것 이지 만 유일한 역할 은 작은 유형의 조작 수 를 int 로 향상 시 키 는 것 이다.연산 자
Operator
Use
Description
+
op1 + op2
op1 과 op2 의 합 을 되 돌려 줍 니 다.
-
op1 - op2
op1 과 op2 의 차 이 를 되 돌려 줍 니 다.
*
op1 * op2
op1 과 op2 의 적 을 되 돌려 줍 니 다.
/
op1 / op2
op1 을 op2 로 나 눈 상 을 되 돌려 줍 니 다.
%
op1 % op2
op1 을 op2 로 나 눈 나머지 자동 증가 와 체감 자바 에서 제공 하 는 계량 단축 연산 에서 증가 와 체감 연산 을 되 돌 릴 때 상당히 좋 고 빠 른 연산(일반적으로'자동 증가'와'자동 체감'연산 이 라 고 불 린 다).그 중에서 체감 조작 부 호 는'-'로 개인 적 인 일 로 한 단 위 를 줄 이 고 증가 하 는 것 은'+'라 는 뜻 으로 한 단 위 를 추가 하 는 것 이다.+a 는 a=a+1 의 체감 도 똑 같이 증가 하고 감소 하 는 것 은'접두사 식'과'접두사 식'으로 나 뉜 다.접두사:+a,-a 는 연산 을 먼저 실행 하고 값 을 생 성 합 니 다.그리고 접미사 a+,a--에 대해 서 는 값 이 되 어 연산 을 수행 합 니 다.
 
public class AutoInc{
public static void main(String [] args){
int i=1;
System.out.println("i:"+1);
System.out.println("++i:"+ ++i);
System.out.println("i++:"+ i++);
System.out.println("―i:"+ --i);
System.out.println("i--:" + i--);
}
}
출력 i:1+i:2 i+2 i+:2--i:1 i-1:위의 예 에서 볼 수 있 는 접두사 식 과 접두사 식 의 차이 점 점 증 조작 부 호 는 바로 c++라 는 이름 의 해석 이다.관계 조작 부 호 는<,>,<=,>=,==,!=(모든 기본 데이터 형식 에 적합 하지 않 은 것 과 같 지 않 습 니 다.다른 조작 자 는 boolean 값 에 대한 조작 에 적합 하지 않 습 니 다.true 와 false 두 개 사이 에 크 거나 작은 관계
 
public class Equivalence{
public static void main(String [] arg){
Integer n1=new Integer(47);
Integer n2=new Integer(47);
System.out.println(n1==n2);
System.out.println(n1!=n2);
}
}
출력 false true 결 과 는 당신 이 생각 하 는 것 과 다 를 수 있 습 니 다.여기 서 대상 의 내용 이 같 지만 대상 의 인용 은 다 릅 니 다.비교 하 는 것 은 대상 의 인용 이지 내용 이 아니다.두 대상 의 실제 내용 을 비교 해 보면 어떻게 해 야 하나 요?모든 대상 에 적용 되 는 equals()방법 을 사용 해 야 합 니 다.그러나 이 방법 은 기본 유형 에 적용 되 지 않 으 며,기본 유형 은 직접 사용=,!=
 
public class EqualMethod{
public static void main(String [] args){
Integer n1=new Integer(47);
Interger n2=new Integer(47);
System.out.println(n1.equals(n2));
}
}
true 를 출력 할 수 있 습 니 다.그러나 인용 대상 이 자신 이 만 든 클래스 라면 결 과 는 다 를 수 있 습 니 다
 
class Value{
int i;
}
public class EqualsMethod2{
public static void main(String [] args){
Value v1=new Value();
Value v2=new Value();
v1.i=v2.i=100;
System.out.println(v1.equals(v2));
}
}
.false 결 과 를 출력 하 는 것 은 false 입 니 다.이것 은 equals 의 기본 값 이 비교 참조 이기 때 문 입 니 다.따라서 자신의 새로운 유형 에서 equals 방법 을 다시 쓰 지 않 으 면 우리 가 기대 하 는 효 과 를 얻 을 수 없다.관계 조작 부호
Operator
Use
Description
>
op1 > op2
op1 이 op2 보다 클 때 true 로 돌아 갑 니 다.
>=
op1 >= op2
op1 이 op2 보다 크 거나 같 을 때 true 로 돌아 갑 니 다.
<
op1 < op2
op1 이 op2 보다 작 을 때 true 로 돌아 갑 니 다.
<=
op1 <= op2
op1 이 op2 보다 작 거나 같 을 때 true 로 돌아 갑 니 다.
==
op1 == op2
op1 이 op2 보다 클 때 true 로 돌아 갑 니 다.
!=
op1 != op2
op1 이 op2 와 같 지 않 을 때 true 논리 연산 자 논리 연산 자 와(&)또는(|||),비(!)를 되 돌려 줍 니 다.매개 변수 관계 에 따라 불 값
 
public class Bool{
public static void main(String [] args){
Random rand=new Random(47);
int i=rand.nextInt(100);
int j=rand.nextInt(100);
System.out.println("i=" + i);
System.out.println("j=" + j);
System.out.println("i > j is" +( i>j));
System.out.println("i < j is" +( i<j));
System.out.println("i > =j is" +( i>=j));
System.out.println("i <=j is" +( i<=j));
System.out.println("i ==j is" +( i==j));
System.out.println("i !=j is" +( i!=j));
System.out.println("(i <10) && (j<10) is" +((i <10) && (j<10)));
System.out.println("(i <10) || (j<10) is" +((i <10) ||(j<10)));
}
}
출력 i=58 j=55 i>j is true i=j is true i<=j is false i==j is false i==j is false i!=j is true(i<10)&&(j<10)is false(i<10)|(j<10)isfalse 와 비 조작 은 불 값 에 만 적 용 됩 니 다.String 값 이 어야 할 곳 에서 boolean 을 사용 하면 불 값 은 자동 으로 적당 한 형식 으로 변 환 됩 니 다.주의해 야 할 것 은 절차 상 부동 소수점 에 대한 비교 가 매우 엄격 하 다 는 것 이다.조건 조작 부호
Operator
Use
Description
&&
op1 && op2
op1 과 op2 가 모두 true 일 때 true 로 돌아 갑 니 다.만약 op1 의 값 이 false 라면 오른쪽 조작 수 를 연산 하지 않 습 니 다.
||
op1 || op2
op1 과 op2 중 하나 가 true 일 때 true 로 돌아 갑 니 다.만약 op1 의 값 이 true 라면 오른쪽 조작 수 를 연산 하지 않 습 니 다.
!
! op
op 이 false 일 때 true 로 돌아 가기;op 이 true 일 때 false 로 돌아 갑 니 다.
&
op1 & op2
연산 op1 과 op2;만약 op1 과 op2 가 모두 불 값 이 고 모두 true 와 같다 면 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.만약 op1 과 op2 가 모두 숫자 라면,실행 위치 와 조작
|
op1 | op2
연산 op1 과 op2;만약 op1 과 op2 가 모두 불 값 이 고 true 와 같은 것 이 있다 면 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.만약 op1 과 op2 가 모두 숫자 라면,실행 위치 나 조작
^
op1 ^ op2
연산 op1 과 op2;만약 에 op1 과 op2 가 다르다 면 하 나 는 true 이 고 다른 하 나 는 그렇지 않 으 면 true 로 돌아 갑 니 다.그렇지 않 으 면 false 로 돌아 갑 니 다.만약 에 op1 과 op2 가 모두 숫자 라면 실행 위치 가 다 르 거나 조작 단락 은 논리 조작 자 를 사용 할 때 단락 상황 을 만 날 수 있다.전체 표현 식 의 값 을 명확 하 게 확인 할 수 있 으 면 표현 식 의 나머지 부분 을 계산 하지 않 습 니 다.따라서 전체 논리 표현 식 의 뒤쪽 부분 은 더 이상 계산 하지 않 을 수 있 습 니 다.다음 예 는 단락 현상
 
public class ShortCircuit{
static Boolean test1(int val){
System.out.println(“test1(“+val+")");
System.out.println(“result:"+(val<1));
return val<1
}
static Boolean test2(int val){
System.out.println(“test1(“+val+")");
System.out.println(“result:"+(val<2));
return val<2
}
static Boolean test3(int val){
System.out.println(“test1(“+val+")");
System.out.println(“result:"+(val<3));
return val<3
}
public static void main(String [] args){
Boolean b=test1(0)&&test2(2)&&test3(2);
System.out.println(“expression is “ + b);
}
}
출력 test 1(0)result:true test(2)result:false expression is false 는 3 가지 방법 을 호출 했 기 때문에 자 연 스 럽 게 3 가지 방법 이 모두 실행 되 어야 한다 고 생각 하지만 실제 출력 은 그렇지 않 습 니 다.두 번 째 테스트 에서 false 결과 가 나 왔 기 때 문 입 니 다.이것 은 전체 표현 식 이 false 임 을 의미 하기 때문에 남 은 표현 식 을 계속 계산 할 필요 가 없습니다.그러면 낭비 일 뿐 입 니 다."단락실제로 논리 적 으로 모든 논리 표현 식 의 일 부 는 계산 하지 않 아 도 성능 이 향상 된다.삼원 조작 부호 삼원 조작 부호 도 조건 조작 부호 가 되 었 다.그 는 비교적 특별 해 보 였 다.세 개의 조작 수가 있 기 때문이다.그러나 그 는 조작 부호 의 한 형식 인 boolean-exp?value 0:value 1 에 속한다.boolean-exp 표현 식 결과 가 true 라면 value 0 을 계산 하고 이 계산 결 과 는 조작 부호 가 최종 적 으로 발생 하 는 값 이다.boolean-exp 표현 식 결과 가 false 라면 value 1 을 계산 합 니 다.마찬가지 로 그의 결과 도 연산 자의 마지막 값 이 됩 니 다.물론 이것 도 if-else 로 대 체 될 수 있 지만 3 원 연산 자 는 if-else 와 완전히 다 르 기 때문에 연산 자 는 하나의 값 을 만 들 수 있 습 니 다.
 
public class TernaryIfElse{
static int ternary(int i){
return i<10?i*100:i*10;
}
static int standardIfElse(int i){
if(i<10)
return i*100;
else
return i*10;
}
public static void main(String [] args){
System.out.println(ternary(9));
System.out.println(ternary(10));
System.out.println standardIfElse( (9));
System.out.println standardIfElse( (10));
}
}
출력 900 100 900 100 에 비해 3 원 연산 자 는 매우 치밀 하 며,if-else 는 문자열 연산 자+와+=자바 중+와+=연산 자 는 이전에 말 한 역할 을 제외 하고 특수 한 문맥 환경 에서 문자 연결 로 사용 할 수 있다.그래서 그들 은 문자열 연산 자 라 고도 부 르 는데 문자열 연산 자 는 재 미 있 는 행동 을 한다.표현 식 이 하나의 문자열 로 시작 하면 다음 의 모든 작업 수 는 문자열 형(컴 파일 러 는 쌍 따옴표 의 문자 순 서 를 문자열 로 자동 으로 변환 합 니 다)이 어야 합 니 다.
 
public class StringOperators{
public static void main(String [] args){
int x=0,y=1,z=2;
String s="x,y,z";
System.out.println(s+x+y+z);
System.out.println(x+""+s);
s+="(summed) =";
System.out.println(s+(x+y+z));
System.out.println(“"+x);
}
}
출력 x,y,z 012 0 x,y,z x,y,z(summed)=30 은 전체 3 이 아 닌 첫 번 째 줄 출력 이 012 이 어야 합 니 다.컴 파일 러 가 자동 으로 문자열 형식 으로 바 뀌 었 기 때 문 입 니 다.마지막 부분 은+=문자열 을 s 에 추가 하고 컴 파일 러 의 변환 을 괄호 로 제어 하여 순 조로 운 구 화 를 할 수 있 도록 합 니 다.

좋은 웹페이지 즐겨찾기