ディレクトリ
データ型変換
Q:異なるデータ型を持つことはでき操作?
:はい
1.1自動型変換(暗黙)
概念:データのデータ型小範囲は自動的にデータ型の広い範囲に変換され、異なるデータ型を計算
バイト・>短期> INT->長期>フローティング状態>二重
フォーマットデータタイプ広範囲変数名=小さな値のデータ型。
1.2キャスト(強いRPM)
概念:大きな値のデータを変換するための特定のフォーマットのデータ型の小さな範囲の範囲
フォーマット:データ型変数名=(ターゲット・タイプ)の小さな範囲のデータ値の広い範囲;
注:
1、基本的なデータ型は必須では推奨されませんコンバータ
2、バイト、動作中に短い、チャーは、自動的にintに変換しました
プロセス制御
ファンクション意味:。つまり、制御の流れは
関係なく、電流の流れがどのように制御されるか、限り、コントロールの外として、プログラムはまだ順番に実行されません。フロー制御は、特定の目的を達成するために、オーダーからそれを作ることです。
シーケンスストラクチャ
コード・シーケンスを書き込むステップと一致してプログラムを実行します
分岐構造
他に、もし
- 単一構造の場合
if(条件){
语句a
}
语句b
逻辑:判断条件是否满足,如果满足则执行语句a,再执行语句b;
反之,直接执行语句b。
- 標準のif-else
if(条件){
语句a
}
else{
语句b
}
语句c
逻辑:条件满足,执行语句a;反之,执行语句b;语句c无论如何都会执行。
注:if、else的是互斥的;if、else中必须有一个被执行
注意:
場合にはIF()括弧なしで、次の場合、それは最初のセミコロンを見つけるために、;
コンテンツには、セミコロンが実行何もない前に、それが空である場合。同じことが他の対応に適用されます。
int i = 3;
if (i < 2)
System.out.println("S");
System.out.println("B");
- 多基準のif-else
if(条件1){
语句a
}
else if(条件2){
语句b
}
else if(条件3){
语句c
}
...
else{
语句n
}
语句m
逻辑:依次判断每一个条件,当有一个条件满足时,就执行对应代码段中的语句,然后执行语句m;
如果没有任何一个语句满足条件,则执行最后一个else的语句n,然后再执行语句m。
ネストされたのif-else条件付き
フォーマット:コードブロックまたは他の場合には、他の分析が続けば、選択した構造
キーワード:スイッチ、ケース、休憩、デフォルト
switch(表达式){
case 值1:
语句a
break;
case 值2:
语句b
break;
case 值3:
语句c
break;
...
default:
语句d
break;
}
ロジック:ケースの後に比較値と計算式の結果、この結果、同一の場合は、文の後、このケースが実行され、
ステートメントがデフォルトの後に実行された場合に式の同一の結果値は、そうではありません。
注意:
- データ型の式があり、バイト、ショート、整数、文字、文字列、列挙を配置することができます
- 例値の後に結果の型は同じ型の式でなければなりません
- 値は一意の場合でなければなりません
- デフォルトでは、デフォルトの結果を満たすため、使用する場合がありますする必要がないときにのみ、必要はありません。と場所は任意であり、通常、最後に
- 効果は、全体のスイッチケース構造体の端を破ります
- ケースが条件を満たしていると判定された場合に抜け出すすることがあれば、彼は、実行したとき。ブレークまで進行しません。ケースには、条件を満たしていない場合は、このケースにケースの実装をスキップ。
貫通ブレークを使用せず:ブレークは即時中断ジャンプにつながります。限り何の中断は、フロントのデフォルト、または途中で、実行を継続しないだろうがあるので、場合しばらく前にデフォルトに行って、ケースから次のデフォルトを下に実行します。
マッチング式の結果の特定の値は、書き込まれていないBREAK場合には、プログラムが下方順序を行い、次遭遇BREAKは知っている、またはスイッチケース構造の終わりを知ります
这是计算月份某一年第几月的第几号是这一年的多少天。
倒着取能够把前面的月份都算上,以后有这样的算法,可以这样计算。
int sum = 0;
switch (month) {
case 12:
sum += 30;
case 11:
sum += 31;
case 10:
sum += 30;
case 9:
sum += 31;
case 8:
sum += 30;
case 7:
sum += 31;
case 6:
sum += 31;
case 5:
sum += 30;
case 4:
sum += 31;
case 3:
sum += 28;
case 2:
sum += 31;
case 1:
sum += day;
----------------------------------------------------------------
所有满足条件的月份都可以向下执行
int month = 5;
if(month >= 1 && month <= 12){
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("大");
break;
case 2:
case 4:
case 6:
case 9:
case 11:
System.out.println("小");
break;
}
------------------------------------------------------------------
先执行一边case发现没有满足条件的,之后执行default,然后发现没有break,又把所有的case又执行了一边。
int score = 44;
switch (score / 10) {
default:
System.out.println("E");
case 10:
case 9:
System.out.println("A");
case 8:
System.out.println("B");
case 7:
System.out.println("C");
case 6:
System.out.println("D");
}
输出:
E
A
B
C
D
ループ構造
- 次day4ノートで
ランダムな番号、キーボード入力
キーボード入力java.util.Scanner
これらの手順を実行します。
- オブジェクトの作成したスキャナの
スキャナSC =新しいスキャナ(System.in) ;
- この方法は、入力呼び出し受信したか否かを判定する
文字列S = sc.nextを();戻りにStringを受信
INTに= sc.nextInt();受信データをINT、intを返し
乱数
これらの手順を実行します。
- 作成ランダムオブジェクト
ランダムはr =新しいランダム();
- この方法は、ランダムな整数コール
の全範囲の整数乱数; r.nextInt()
r.nextIntを(INTバウンド)、ランダムデータが0〜結合-1、0を含む、また、結合した-1含まれている
。注:ランダム[M 、n]は式nextInt(N-M + 1) + M
Random random = new Random();
double randomNum = random.nextInt();
System.out.println(randomNum);
想要随机一个一个23-44
double randomNum = random.nextInt(22)+23;//这里面的22是要考虑到0的感受的
System.out.println(randomNum);
想要随机的数就是[m-n] 从m-n的随机数
公式:(n-m+1)+m
追加
- オブジェクトとインターフェイスは参照データ型であり、参照データ転送は、アドレス・タイプであります
- すべての条件は、最初にするだけで判断した後に、正当性を決定することです。これは役に立たない状態の決意を回避します