赞
踩
这里是计算机专业大二学生小文,记录一下自己学习java的辛酸过往。
编写一个Java Application程序,用户从键盘输入一个浮点数据,程序将输出这个数的平方和三次方。
基础知识:
System.out表示标准输出设备,用System.in表示标准输入设备,默认情况下,输出设备是控制台,输入设备是键盘。
使用java.util.Scanner类创建对象读取来自System.in的输入:
Scanner scanner=new Scanner(System.in)
Scanner对象包括以下读取输入的方法:
实验代码:
- //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
- }
- }
运行结果:
运行效果如图。
实验代码:
- 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), 找不到合适的方法
要求:用命令行传递参数的方法
实验代码:
- 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整除但不能被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+"年不是闰年");
- }
- }
- }
- }
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。