Java言語の基礎(二)
9343 ワード
Java言語ベース
比較演算子と論理演算子※&&と&の違い:最初の判別式が偽であれば,後の判別式は判断せずfalseとなる.※|||との違い:最初の判別式が真であれば、後の判別式は判断せず、結果はtrueとなる.1つの数が異なるか、同じ数が2回あるか、結果はやはりこの数です.
ビット演算子バイナリビット演算用シンボル
>>>>:符号なしで右に移動:データが右に移動すると、高位に現れた空席は、元の最高位が何であれ、空席は0で補う.
効率的な演算はバイナリビットを操作することを優先する.
開発時にサードパーティ変数を用いて値の交換を実現するのは,読解性が強いためである.
三元演算子フォーマット(条件式)?式1:式2条件がtrueの場合、演算後の結果は式1である.条件がfalseの場合、演算後の結果は式2です.
プログラムフロー制御シーケンス構造,判断構造,選択構造,ループ構造(同C++)の三元演算子がif else文の略記フォーマットであるが,その限界がある.簡写形式はいつ使いますか.if else演算後に具体的な結果が得られると,三元演算子に簡略化できる.ローカルコードブロックは、ローカル変数のライフサイクルを定義し、ローカル変数はコードブロックの終了時に消滅します.switch(x)では、xの値にはbyte、short、int、charの4種類があります.ifとswitchの応用if:1.具体的な値を判断する.区間判定3.演算結果がbooleanタイプの式であることを判断する
switch: 1.具体的な値を判断する.値の個数は通常、いくつかの固定値の判断に固定され、switch文を使用することを推奨します.switch文は具体的な答えをメモリにロードするので、比較的効率的です.
do whileの特徴:条件が満たされているかどうかにかかわらず、ループ体は少なくとも1回実行する1つの条件を1回判断する場合、if文を使用することができ、1つの条件を複数回判断する場合、while文を使用することができる注意:ループを使用する場合、どの文がループに関与する必要があるのか、ループを必要としないのかを明確にする必要があります通常、条件を定義する必要があり、回数for文を制御する必要があります
forとwhileの特徴:1.forとwhileは交換できます.フォーマット上の違いは、使用上の違いです.変数でループを制御する必要がある場合、その変数値がループ増分として存在する場合、違いが現れます.
ネストされたループ練習
比較演算子と論理演算子※&&と&の違い:最初の判別式が偽であれば,後の判別式は判断せずfalseとなる.※|||との違い:最初の判別式が真であれば、後の判別式は判断せず、結果はtrueとなる.1つの数が異なるか、同じ数が2回あるか、結果はやはりこの数です.
class OperateDemo3
{
public static void main(String[] args)
{
/*
, true false
*/
//System.out.println(3>2);//true
//System.out.println(3==2);//false
/*
:
boolean
&
:
true&true=true;
true&false=false;
false&ture=false;
false&false=false;
|
:
true|true=true;
true|false=true;
false|true=true;
false|false=false;
^
:
true^true=false;
true^false=true;
false^true=true;
false^false=false;
! :
!true=false;
!false=true;
&&
& : , , false
||
| : , , true
*/
int x=3;
System.out.println(x>2&x<5);//true
System.out.println(x<2|x>5);//false
}
}
ビット演算子バイナリビット演算用シンボル
class OperateDemo4
{
public static void main(String[] args)
{
//System.out.println(6&3);
//System.out.println(6|3);
//System.out.println(~6);// , , 7
System.out.println(3<<2);//3 2 ,3*2^2
System.out.println(3>>1);//3 1 ,3/(2^1)
}
}
>>>>:符号なしで右に移動:データが右に移動すると、高位に現れた空席は、元の最高位が何であれ、空席は0で補う.
効率的な演算はバイナリビットを操作することを優先する.
class OperateText
{
public static void main(String[] args)
{
// 2 8
//System.out.println(2<<3);
int a=3,b=5;
System.out.println("a="+a+",b="+b);
/*
// ( )
// , , int , ,
a=a+b; //a=8
b=a-b; //b=8-5=3
a=a-b; //b=8-3=5
*/
int a=3,b=5;
a=a^b; //a=3^5
b=a^b; //b=(3^5)^5=3
a=a^b; //a=(3^5)^3=5
System.out.println("a="+a+",b="+b);
}
}
開発時にサードパーティ変数を用いて値の交換を実現するのは,読解性が強いためである.
三元演算子フォーマット(条件式)?式1:式2条件がtrueの場合、演算後の結果は式1である.条件がfalseの場合、演算後の結果は式2です.
class OperateDemo5
{
public static void main(String[] args)
{
int x=3,y;
y=(x>1)?100:200;
System.out.println("y="+y);
//
int a=3,b=5;
int max=a>b?a:b;
System.out.println("max="+max);
}
}
プログラムフロー制御シーケンス構造,判断構造,選択構造,ループ構造(同C++)の三元演算子がif else文の略記フォーマットであるが,その限界がある.簡写形式はいつ使いますか.if else演算後に具体的な結果が得られると,三元演算子に簡略化できる.ローカルコードブロックは、ローカル変数のライフサイクルを定義し、ローカル変数はコードブロックの終了時に消滅します.switch(x)では、xの値にはbyte、short、int、charの4種類があります.ifとswitchの応用if:1.具体的な値を判断する.区間判定3.演算結果がbooleanタイプの式であることを判断する
switch: 1.具体的な値を判断する.値の個数は通常、いくつかの固定値の判断に固定され、switch文を使用することを推奨します.switch文は具体的な答えをメモリにロードするので、比較的効率的です.
do whileの特徴:条件が満たされているかどうかにかかわらず、ループ体は少なくとも1回実行する1つの条件を1回判断する場合、if文を使用することができ、1つの条件を複数回判断する場合、while文を使用することができる注意:ループを使用する場合、どの文がループに関与する必要があるのか、ループを必要としないのかを明確にする必要があります通常、条件を定義する必要があり、回数for文を制御する必要があります
class ForDemo
{
public static void main(String[] args)
{
int x=1;
for(System.out.println("a");x<3;System.out.println("0")) // , for(int i=0;i<=10;i++) ; ,
{
System.out.println("d");
x++;
}
}
}
forとwhileの特徴:1.forとwhileは交換できます.フォーマット上の違いは、使用上の違いです.変数でループを制御する必要がある場合、その変数値がループ増分として存在する場合、違いが現れます.
class ForTest
{
public static void main(String[] args)
{
// 1~10
int x=1;
while(x<11) //while ,x
{
System.out.println("x="+x);
x++;
}
for (int y=1;y<=10 ;y++ ) //for ,y
{
System.out.println("y="+y);
}
}
}
ネストされたループ練習
class ForForTest
{
public static void main(String[] args)
{
/*
*****
****
***
**
*
*/
for(int x=1;x<=5;x++)
{
for(int y=5-x;y>=0;y--) // x y
{
System.out.print("*");
}
System.out.println(); // ,
}
System.out.println("--------------");
/*
*
**
***
****
*****
*/
for (int x=1;x<=5 ;x++ )
{
for (int y=1;y<=x ;y++ ) // x y
{
System.out.print("*");
}
System.out.println(); // ,
}
System.out.println("--------------");
/*
54321
5432
543
54
5
*/
for (int x=1;x<=5 ;x++ )
{
for (int y=5;y>=x ;y--)
{
System.out.print(y);
}
System.out.println();
}
System.out.println("--------------");
/*
1
22
333
4444
55555
*/
for (int x=1;x<=5 ;x++ )
{
for (int y=1;y<=x ; y++)
{
System.out.print(x);
}
System.out.println();
}
}
}
class ForFor99
{
public static void main(String[] args)
{
/*
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
……
*/
for (int x=1;x<=9 ;x++ )
{
for (int y=1; y<=x;y++ )
{
System.out.print(y+"*"+x+"="+y*x+"\t");// '\t'
}
System.out.println();
}
/*
\t
\b
\r
windows \r
linux
*/
}
}
class BreakContinueDemo
{
public static void main(String[] args)
{
/*
break
: switch
※ break , , break ,
break , ,break ,
*/
for (int x=0;x<3 ;x++ )
{
System.out.println("x="+x);
break; // , x=0
}
System.out.println("---------------");
loop1:for (int x=0;x<3 ;x++ ) // for
{
loop2:for (int y=0;y<4 ;y++ )
{
System.out.println("x="+x);
break loop1; // , loop1, x=0
}
}
System.out.println("---------------");
/*
continue
:
: ,
*/
for (int x=0;x<11 ;x++ )
{
/*
, continue ,
continue;
System.out.println("x="+x); // , 。
*/
if (x%2==0) //x , ,
{
continue;
}
System.out.println("x="+x);
}
System.out.println("---------------");
loop1:for (int x=0;x<3 ;x++ ) // for
{
loop2:for (int y=0;y<4 ;y++ )
{
System.out.println("x="+x);
continue loop1; // , , x=0,x=1,x=2
}
}
}
}