Javaのプロセス制御
基本ステージカタログ:
ユーザーインタラクションスキャナー
シーケンス構造
選択構造
ループ構造
ブレーク&コンティニュー
演習
1.スキャナーオブジェクト
以前に学習した基本的な文法は、プログラムと人との相互作用を実現しませんでしたが、Javaはそのようなものを提供します。ツール、ユーザー入力を取得できます。Java.util.ScannerはJava5の新機能であり、Scannerクラスを介してユーザー入力を取得できます。
基本構文:
スキャナーs = new Scanner(System.in);
Scannerクラスのnext()メソッドとnextLine()メソッドを使用して入力文字列を取得します。読み取る前に、通常、hasNext()とhasNextLine()を使用して、入力データがまだあるかどうかを判断する必要があります。
次():
入力を終了する前に、有効な文字を読み取る必要があります。//入力する必要があります。入力しないとプログラムが停止しません
有効な文字を入力する前に検出された空白の場合、next()メソッドはそれらを自動的に削除します。// Hello Worldは、スペースがあるため、Helloのみを出力します
有効な文字が入力された場合にのみ、その後に入力された空白がセパレーターまたはターミネーターとして使用されます。/ '/プログラムにスペースがある場合にのみ終了'
next()は、スペースを含む文字列を取得できません。
next()の使用例:
パッケージcom.company.base;
java.util.Scannerをインポートします。
パブリッククラスdemo1 {
public static void main(String[] args) {
//创建一个扫描器对象,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()){
//使用next方式接收
String str = scanner.next();
System.out.println("输出的内容为:"+str);
}
scanner.close(); //IO流的用完记得关掉 占用内存 IO流就是输入输出流 和电脑交换信息的
}
}
NextLine()
はEnterをターミネータとして受け取ります。これは、nextLine()メソッドがキャリッジが戻る前にすべての文字を返すことを意味します。
空白を取得できます。
パッケージcom.company.base;
java.util.Scannerをインポートします。
パブリッククラスdemo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入数据");
if(scanner.hasNextLine()){
String abc = scanner.nextLine();
System.out.println("输出:"+abc);
}
scanner.close();
}
}
整数と小数
を判断するためのスキャナーパッケージcom.company.base;
java.util.Scannerをインポートします。
public class demo4 {
public static void main(String [] args){
スキャナースキャナー=新しいスキャナー(System.in);
//从键盘接收数据
int i = 0;
float f = 0.0f;
System.out.println("请输入整数:");
//如果。。。那么。。。
if (scanner.hasNextInt()){
i = scanner.nextInt();
System.out.println("整数数据:"+ i);
}else {
System.out.println("输入的不是整数数据");
}
System.out.println("请输入小数");
if (scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("小数数据:"+ f);
}else {
System.out.println("输入的不是小数数据!");
}
Scanner.close();
}
}
簡単な計算機を作る
パッケージcom.company.base;
java.util.Scannerをインポートします。
パブリッククラスdemo5 {
public static void main(String[] args) {
//我们可以输入多个数字,并求其总和与平均数,每一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
Scanner scanner = new Scanner(System.in);
//和
double sum = 0;
//计算输入了多少个数字
int m = 0;
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m = m+1;//m++
sum = sum + x;
System.out.println("你输入了第"+m+"个数据,然后点钱结果sum"+sum);
}
System.out.println(m +"个数的和为"+ sum);
System.out.println(m+ "个数的平均值是"+(sum / m));
scanner.close();
}
}
2.シーケンス構造
Javaの基本構造はシーケンス構造であり、特に指定のない限り、責任は順序に従って実行されます。
シーケンス構造は、最も単純なアルゴリズム構造です。
センテンスとセンテンスの間で、ボックスとボックスは上から下の順に実行され、いくつかの処理ステップが順番に実行されます。これは、どのアルゴリズムからも分離できない基本的なアルゴリズムです。構造。
まだ理解していない場合は、以下のRUNを実行するだけでわかります
パッケージcom.company.base;
public class demo6 {
public static void main(String [] args){
System.out.println( "1");
System.out.println( "2");
System.out.println( "3");
System.out.println( "4");
System.out.println( "5");
System.out.println( "6");
System.out.println( "7");
System.out.println( "8");
}
}
3.選択構造(非常に重要)
単一選択構造の
場合二重選択構造の
場合複数選択構造が
ネストされている場合構造の
切り替え複数選択構造の
場合単一選択構造
何かが実行可能かどうかを判断する必要があり、実行できます、このようなプロセスは、プログラムのifステートメントで表されます。
文法:
if(Boolean expression){
//ブール式がtrueの場合に実行されるステートメント、それ以外の場合はスキップ
}
if二重選択構造
が2つの判断を必要とする場合、二重選択構造が必要になるため、if-else構造があります。
構文:
if(ブール式){
//ブール式の値がtrueの場合
} else {
//ブール式の値がfalseの場合
}
パッケージcom.company.ifdemo;
java.util.Scannerをインポートします。
パブリッククラスif2 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60分就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if (score>60){
System.out.println("及格");
}else {
System.out.println("不及格");
}
}
}
複数選択構造の場合
、コードが実際の状況を満たしていないことがわかりました。実際の状況では、ABCDが存在する可能性があり、間隔のマルチレベルの判断があります。たとえば、90-100はA、80-90はBなどです。多くの場合、私たちの選択肢はこれら2つだけではありません。そのため、このような問題に対処するには、複数の選択肢からなる構造が必要です。
if(ブール式1){
//ブール式1の値がtrueの
場合にコードを実行} else if(ブール式2){
//ブール式2の値がtrueの
場合にコードを実行} else if(ブール式式3){
//ブール式3の値がtrueの場合にコードを実行する
} else {
//上記のブール式のいずれもtrueでない場合にコードを実行する
}
パッケージcom.company.ifdemo;
java.util.Scannerをインポートします。
パブリッククラスif3 {
public static void main(String[] args) {
//考试分数大于60就是及格,小于60分就是不及格
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
/
ifステートメントには最大で1つのelseステートメントがあり、elseステートメントは他のすべてのifステートメントの後に続きます。
ifステートメントには複数のelseifステートメントを含めることができ、それらはelseステートメントの前に置く必要があります。
else ifステートメントの1つがtrueとして検出されると、他のelseifおよびelseステートメントはスキップされます実行
/
if(score == 100){
System.out.println( "おめでとうございます、満点になりました");
} else if (スコア<100 &&スコア> = 90){
System.out.println( "A-level");
} else if(スコア<90 &&スコア> = 80){
System.out.println( "B-level");
} else if(score <80 &&スコア> = 70){
System.out.println( "C-level");
} else if(score <70 &&スコア> = 60){
System.out.println( "D-level") ;
} else if(score <60 && score> = 0){
System.out.println( "合格して一生懸命勉強できませんでした");
}
}
}
-
構造の場合はネスト
-
ネストされたif ... elseステートメントを使用することは合法です。つまり、ifまたはelseifステートメントを別のifまたはelseifステートメントで使用できます。ifステートメントのように... elseの場合は他にネストできます。
- 構文
if(ブール式1){
//ブール式1の値がtrueの
場合にコードを実行if(ブール式2){
//ブール式2の値がtrueの場合にコードを実行
}
}
-
4.スイッチマルチ
チョイス構造マルチチョイス構造を実現する別の方法は、スイッチケースステートメントです。
switch caseステートメントは、変数が一連の値の特定の値に等しいかどうかを判別でき、各値はブランチと呼ばれます。
switchステートメントの変数タイプは、
byte、short、int、またはcharです
。JavaSE7以降、
スイッチは文字列Stringタイプ
をサポートし、ケースラベルは文字列定数またはリテラルである必要があります。
Switch(expression){
ケース値:
//ステートメント
ブレーク; //オプションの
ケース値:
//ステートメント
ブレーク; //オプション
//任意の数のケースステートメントを
使用できますdefault://オプション
//ステートメント
}
最初の例:
パッケージcom.company.jiaohuan;
public class JH {
public static void main(String [] args){
//
char grade = 'A';
switch (grade){
case 'A':
System.out.println("优秀");
break;//可选
case 'B':
System.out.println("良好");
break;//可选
case 'C':
System.out.println("及格");
break;//可选
case 'D':
System.out.println("再接再厉");
break;//可选
case 'E':
System.out.println("拉了兄弟");
break;//可选
default:
System.out.println("未知等级");
}
}
}
2番目の例:
パッケージcom.company.jiaohuan;
public class JH2 {
public static void main(String [] args){
String name = "chb";
// JDK 7の新機能、式の結果は文字列にすることができます!!!
//文字の性質はまだ数字です!!!
//反编译 java----class(字节码文件)---反编译(IDEA)
switch(name){
case "RAP":
System.out.println( "RAP");
ブレーク;
ケース "整活":
System.out.println( "整活");
デフォルト:
System.out.println( "妹有啊");
}
}
}
5.ループ構造
whileループ
while(ブール式){
//ループコンテンツ
}
- ブール式が真である限り、ループは実行を継続します。
- ほとんどの場合、ループを停止します。ループを終了するには、式を無効にする方法が必要です。
- サーバー要求応答の監視など、少数のケースを継続的に実行する必要があります。
- ループ条件が常に真の場合、無限ループが発生します[無限ループ]通常のビジネスプログラミングでは、無限ループを回避するように努める必要があります。プログラムのパフォーマンスに影響を与えたり、プログラムが
フリーズしてクラッシュしたりします!package com.company.whiledemo01;
public class Whiledemo1 {
public static void main(String [] args){
//输出1-100
int i = 0;
while (i < 5201314){
i++;
System.out.println(i);
}
}
}
1 +2+を計算します。。+100
public class Whiledemo3 {
public static void main(String [] args){
//计計算1 + 2 + .. + 100
int i = 0;
int sum = 0;
while (i<=100){
sum = sum + i;
i++;
}
System.out.println(sum);
}
}
do ... whileループ
whileステートメントの場合、条件が満たされない場合、ループに入ることができません。ただし、条件が満たされていない場合でも、少なくとも1回は実行する必要がある場合があります。
do ... whileループはwhileループに似ていますが、違いはdo ... whileループが少なくとも1回実行されることです。
do {
//コードステートメント
} while(ブール式);
do ... whileステートメントを使用して、1 +2+を計算します。。+100
パッケージcom.company.whiledemo01;
public class dowhiledemo1 {
public static void main(String [] args){
int i = 0;
int sum = 0;
do {
sum = sum + i;
i ++;
} while((i <= 100));
System.out.println(sum);
}
}
public class dowhiledemo2 {
public static void main(String [] args){
int a = 0;
while (a<0){
System.out.println(a);
a++;
}
System.out.println("===========");
do{
System.out.println(a);
a++;
}while (a<0);
}
whileとdo ... whileの違い:
最初に判断されてから実行されますが、dowhileが最初に実行されてから判断されます!
実行...ループ本体が少なくとも1回実行されることを常に保証します!これが彼らの主な違いです。
forループ
主に配列に使用される拡張forループがJava5で導入されました