実験1 Java言語の基礎

1.実験の目的

1). 熟悉java开发工具及配置
2). 熟悉java程序类型,掌握java应用程序结构及书写形式
3). 掌握java程序编写、编译、执行过程
4). 掌握java程序基本语法
5). 熟悉用System进行简单的输入输出
6). 熟悉命令行参数,熟悉基于包装类的数据转换 

2.実験的な内容

1.下面的程序有错误请修改并编译运行。
1)public class KY2_2 { 
 static int i=10; 
   public static void main(String args[]) { 
        { 
          int k=10; 
          System.out.println("i="+i); 
          System.out.println("k="+k); 
         } 
      System.out.println("i="+i); 
      System.out.println("k="+k); 
              } 
   } 

2)class Test {
public static void main(String args[]) {
	int 2a = 257;
	byte b2 = 2a;
	System.out.println("a=" + a);
	System.out.println("b=" + b);
}
}
3)求一组数字的平均值 */  
import javax.swing.JOptionPane;
	class Example2_18 { 
	public static void main(string args[]) { 
	double nums[5] = {10.1, 11.2, 12.3, 13.4, 14.5}; 
	double result = 0; 
	for(int i=0; i<5; i++) 
      {result = result + nums[i]; }
 JOptionPane.showMessageDialog(null,"平均值为: " + result / 5); //弹出对话框输出
 System.exit(0); //退出程序
 } 
} 
4)import java.io.*; 
  class KY2_9 { 
      public static void main(String args[]) throws IOException { 
        char ch; 
   System.out.println("按 1/2/3 数字键可得大奖!"); 
   System.out.println("按空格键后回车可退出循环操作."); 
   while ((ch=System.in.read())!=' ')
  { 
     System.in.skip(2);     // 跳过回车键,否则下次读入回车
     switch (ch) { 
       case 1: 
         System.out.println("恭喜你得大奖,一辆汽车!"); 
         break; 
       case 2: 
         System.out.println("不错呀,你得到一台笔记本电脑!"); 
         break; 
       case 3: 
         System.out.println("没有白来,你得到一台冰箱!"); 
         break; 
       default: 
         System.out.println("真不幸,你没有奖品!下次再来吧。"); 
     } 
   } 
 } 



2. 补充语句;
1)编写声明不同数据类型变量的程序文件 KY2_1.java,源代码如下,请补充完整: 
public class KY2_1 { 
public static void main(String args[]) { 
  
  System.out.println("字节型变量 b = "+b); 
  System.out.println("短整型变量 s = "+s); 
  System.out.println(" 整型变量 i = "+i); 
  System.out.println("长整型变量 l = "+l); 
  System.out.println("字符型变量 c = "+c); 
  System.out.println("浮点型变量 f = "+f); 
  System.out.println("双精度变量 d = "+d); 
  System.out.println("布尔型变量 B = "+B); 
  System.out.println("字符串类对象 S = "+S); 
} 
} 
2)在下面源代码中补充语句,使得输出如下的结果,编译并运行:
8 16 24 32 <>
7 14 21 28 <>

class Test {
public static void main(String args[]) {
    int j, k;

    for (j = 8; j >1; j--) {
        for (k=1; k<=9; k++) {
            if (k ==5)
	 
	 if (j==6)

	System.out.print(j*k+“ ”);
        }
        System.out.println(“<>”);
       }
}
}

3プログラミングの質問

2. 通过命令行参数输入整数n和m,求两数的最小公倍数。
3. 编写程序,把字符串“1345”,“23.6”,“45.888”,“222”,“true"分别转换为整型、实型、双精度、逻辑型的基本类型(提示:用各基本类型对应包装类的parseXXX()方法)

3.実験分析、コード、および運用結果

1.
1)public class KY2_2 { 
static int i=10;
static int k=10;
public static void main(String args[]) { 
     { 
       
       System.out.println("i="+i); 
       System.out.println("k="+k); 
      } 
   System.out.println("i="+i); 
   System.out.println("k="+k); 
} 
} 

演算結果:
ここに画像の説明を挿入

分析:kのスコープはメイン関数の外側に配置する必要があり、静的メンバーは静的メンバー関数でのみ直接使用でき、さらに静的キーワード

2)class Test {
public static void main(String args[]) {
	int a2 = 257;
	byte b2 = (byte)a2;
	System.out.println("a=" + a2);
	System.out.println("b=" + b2);
}
}

演算結果:

ここに画像の説明を挿入

分析:識別子の命名規則、数字で始めることはできません

3)求一组数字的平均值   
import javax.swing.JOptionPane;
class Example2_18 { 
public static void main(String args[]) { 
    double nums[] = {10.1, 11.2, 12.3, 13.4, 14.5}; 
    double result = 0; 
    for(int i=0; i<5; i++)
      {result = result + nums[i]; }
    JOptionPane.showMessageDialog(null,"平均值为: " + result / 5); //弹出对话框输出
	System.exit(0); //退出程序
  } 
}

演算結果:

ここに画像の説明を挿入

分析:配列の特定のサイズを書き込むことができず、新規または初期化時に指定する必要があることを宣言します(間接的に指定)
4)
import java.io. *;

class KY2_9 { 
public static void main(String args[]) throws IOException { 
char ch; 
System.out.println("按 1/2/3 数字键可得大奖!"); 
System.out.println("按空格键后回车可退出循环操作."); 
while ((ch=(char)System.in.read())!=' ')
{ 
 System.in.skip(2);     // 跳过回车键,否则下次读入回车
 switch (ch-'0') { 
   case 1: 
     System.out.println("恭喜你得大奖,一辆汽车!"); 
     break; 
   case 2: 
     System.out.println("不错呀,你得到一台笔记本电脑!"); 
     break; 
   case 3: 
     System.out.println("没有白来,你得到一台冰箱!"); 
     break; 
   default: 
     System.out.println("真不幸,你没有奖品!下次再来吧。"); 
 } 
} 
}
}

演算結果:

ここに画像の説明を挿入

分析:read()メソッドは、char型に変換する必要がある文字に対応するASCIIコード値を読み取ります。char型間の算術演算は、int型のASCIIコード値 '1'-'0' <=に自動的に変換されます。 => 49〜48 = 1

2. 
1)

 public class KY2_1 { 
    public static void main(String args[]) { 
	      byte b = 123;
	      short s = 123;
	      int i = 123;
	      long l = 123;
	      char c = 'x';
	      float f = 123.0F;
	      double d = 123.000;
	      boolean B = true;
	      String S = "123";
	      System.out.println("字节型变量 b = "+ b); 
	      System.out.println("短整型变量 s = "+ s); 
	      System.out.println(" 整型变量 i = "+ i); 
	      System.out.println("长整型变量 l = "+ l); 
	      System.out.println("字符型变量 c = "+ c); 
	      System.out.println("浮点型变量 f = "+ f); 
	      System.out.println("双精度变量 d = "+ d); 
	      System.out.println("布尔型变量 B = "+ B); 
	      System.out.println("字符串类对象 S = "+ S); 
	}

演算結果:

ここに画像の説明を挿入

分析:注(float f = 123.0F;)これは、デフォルトはdouble型で、その後にfloat型へのFが追加されます

2)}

class Test {
	public static void main(String args[]) {
	    int j, k;
	    BT:
	    for (j = 8; j >1; j--) {
	        for (k=1; k<=9; k++) {
	            if (k ==5)
	            	break;
	            	
		 
		 if (j==6) {
			 break BT;
		 }
		System.out.print(j*k+ " ");
	        }
	        System.out.println("<>");
        }
	}
}

演算結果:

ここに画像の説明を挿入

分析:GotoはJavaで放棄されています。(break tagname;)(continue tagname;)を使用してジャンプを実現できます

2. 
public class Work {
	
	public static void main(String args[]) {
	    int n = Integer.parseInt(args[0]);
	    int m = Integer.parseInt(args[1]);
	    int maxF = maxFactor(m, n);
	    System.out.println(m*n/maxF);
	}
	
	public static int maxFactor(int m, int n) { // 求最大公约数
		return n > 0 ? maxFactor(n, m%n) : m;
	}
}

演算結果:

ここに画像の説明を挿入

分析:最初に再帰的に最大公約数を見つけます。最小公倍数は(a * b)/最大公約数に等しくなります

3.  public static void main(String args[]) {
	  String a = "1345";
	  String b = "23.6";
	  String c = "45.888";
	  String d = "222";
	  String e = "true";
	  int a1 = Integer.parseInt(a);
	  float b1 = Float.parseFloat(b);
	  double c1 = Double.parseDouble(c);
	  int d1 = Integer.parseInt(d);
	  boolean e1 = Boolean.parseBoolean(e);
	 System.out.printf("a1:%s b1:%s c1:%s d1:%s e1:%s",a1,b1,c1,d1,e1);
	    
	}

演算結果:

ここに画像の説明を挿入

分析: 基本类型都有其对应的包装类和parseXXX方法,注意int 对应 Integer

総括する:

Javaには8つの基本型とパッケージングクラスがあります。つまり、
 
バイトパッケージクラスはByte
shortパッケージクラスですShort
intパッケージクラスはInteger
longパッケージクラスですLong
floatパッケージクラスはFloat
doubleパッケージクラスですdouble
charパッケージクラスは文字
booleanパッケージクラスですブール値です

ただし、これらのタイプのパッケージはJAVA.langにあります。

このうち、Integer、Byte、Float、Double、Short、LongはすべてNumberのサブクラスであり、CharacterとBooleanはObjectのサブクラスです。

ポップアップウィンドウを表示する:(便利なガジェット)

import javax.swing.JOptionPane;
JOptionPane.showMessageDialog(null,"平均值为: " + result / 5); //弹出对话框输出

Enterキーをスキップします。それ以外の場合は、次回Enterを読みます

System.in.skip(2);

文字を読みます:

system.in.read();  // 读取的为字符对应的ascii码,类型:int

配列メモ:

声明数组不能写具体的大小,需要在new时指定,或初始化时(间接指定)
如 int a[5] = {1,2,3,4,5};  // 错误

おすすめ

転載: blog.csdn.net/qq_46456049/article/details/108671392