零基础计算机专业生一生要强的JAVA之路(1):2022-09-16实验二记录

这里是计算机专业大二学生小文,记录一下自己学习java的辛酸过往。

1、从键盘输入数据

编写一个Java Application程序,用户从键盘输入一个浮点数据,程序将输出这个数的平方和三次方。

基础知识:

System.out表示标准输出设备,用System.in表示标准输入设备,默认情况下,输出设备是控制台,输入设备是键盘。

使用java.util.Scanner类创建对象读取来自System.in的输入:

        Scanner scanner=new Scanner(System.in)

Scanner对象包括以下读取输入的方法:

  1. next():读取一个字符串。
  2. nextByte():读取byte类型的数
  3. nextShort():读取short类型的数
  4. nextInt():读取int类型的数
  5. nextLong():读取long类型的数
  6. nextFloat():读取float类型的数
  7. nextDouble():读取double类型的数

实验代码:

//InputFloat.java
import java.util.*;
public class InputFloat
{  
    public static void main(String args[])
    {
        double a,b,c;
        Scanner reader = new Scanner(System.in); //创建一个Scanner类的对象reader     
        System.out.println("从键盘输入一个浮点数");
        a=reader.nextDouble(); 
        // reader调用nextDouble()方法读取用户从键盘输入的数据,并赋值给a
        b=a*a;
        c=a*a*a;
        System.out.printf("%f的平方是%f\n",a,b); // 输出b
        System.out.printf("%f的立方是%f",a,c); // 输出c
    }
}

 运行结果:


2、通过控制台输入3个整数,作为三角形的三个边长度,判断三角形是否为有效?(有效指任何两边之和大于第三边)

运行效果如图。

 实验代码:

import java.util.Scanner;
public class isTriangle{
	public static void main(String args[]){
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入三角形的第一条边长:");
		int a = scanner.nextInt();
		System.out.println("请输入三角形的第二条边长:");
		int b = scanner.nextInt();
		System.out.println("请输入三角形的第三条边长:");
		int c = scanner.nextInt();
		System.out.println(a+"、"+b+"、"+c+"是否可以组成三角形?\n");

		if( (a+b)>c && (a+c)>b && (b+c)>a ){
			System.out.println("true");
		}
		else{
			System.out.println("false");
		}
	}
}

 运行结果:

小发现:

ystem.out.println()这个方法中println里面只能传一个参数或不传参数,如果想打印出多个参数,

1.需要自己定义一个新的、具有多个参数的println()方法再调用它,且需要保证实参和形参的类型、个数等相同

2.或者使用“+”将想输出的参数与字符串连接起来:println(String+" "+int+" "+...);

例如下面这行代码应该输出的内容为:“a、b、c(表示的数字)是否可以组成三角形?”

System.out.println(a+"、"+b+"、"+c+"是否可以组成三角形?\n");

但由于我最开始写的代码是:

System.out.println("%d、%d、%d是否可以组成三角形?\n",a,b,c);

所以在编译的时候出现了错误:

        错误: 对于println(String,int,int,int), 找不到合适的方法

3、编写一个Java Application程序,要求用户从键盘输入两个整型数据,求它们的商。

要求:用命令行传递参数的方法

实验代码:

public class test{
	public static void main(String args[]){
		int a, b, c;
		a=Integer.parseInt(args[0]);
		b=Integer.parseInt(args[1]);
		c=a/b;
		System.out.println(a+"、"+b+"的商为:"+c);
	}
}

主方法“public static void main(String args[])”中我们定义了一个字符串类型的数组args[]

要通过命令行传递参数,首先将主方法定义的数组中下标为0(即第一个)的元素经过类型转换后赋值给a,同样,将数组中下标为1(第二个)的元素经过类型转换后赋值给b

类型转换:Integer类中的常用方法parseInt,作用为将数字字符串转换为int数值

命令行传递参数:

在将.java文件编译成 .class文件后,在运行.class时,除了在命令行中输入"java test"命令之外,其后还要跟上a、b的取值,数字之间用空格隔开即可(例:a、b分别取4和3,则应在命令行中输入 java test 4 3)

运行结果:

如果不在运行时输入数值,则运行会出现java数组越界错误:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
        at test.main(test.java:4)

更多:

两个数据做除法运算时,可能会出现错误情况,例如:除数为0、输入的内容是非数值的字符等。

此时我们应该考虑给程序添加一个异常处理结构:try{}        catch{}

try{}中的内容为可能会出错的代码,catch{}中的内容为try{}中代码出错时的处理方式

例:

public class test{
	public static void main(String args[]){
        try{
		    int a, b, c;
		    a=Integer.parseInt(args[0]);
		    b=Integer.parseInt(args[1]);
		    c=a/b;
		    System.out.println(a+"、"+b+"的商为:"+c);
        }
        catch(ArithmeticException e){
            System.out.println("算术异常");
            //此处的算术异常只是其中一种,也有可能出现格式异常或其他异常情况
        }
	}
}

应用:

4、补充练习

闰年是指年数能被4整除但不能被100整除,或者能被400整除的年份。编写一个程序,用于报告一个年份是否为闰年。该年份可以在程序中给定一个固定值,也可以由键盘输入。

提示:要判断一个整数是否能被另一个整数整除,可以用取模运算符(%)。例如,如果年数%4等于0,那么年数能被4整除。即,如果它除以4的余数为0,则年数能被4整除。

实验代码:

import java.util.Scanner;
public class isLeap{
	public static void main(String args[]){
		Scanner scanner = new Scanner(System.in);
		int year;
		System.out.println("请输入一个年份:");
		year=scanner.nextInt();
		if(year<=0){
			System.out.println("年份错误,无法判断!");
		}
		else{
			if((year%4==0&&year%100!=0)||year%400==0){
				System.out.println(year+"年是闰年");
			}
			else{
				System.out.println(year+"年不是闰年");
			}
		}
	}
}

运行结果:

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值