Java语言程序设计 DAY2

第二章 基本程序设计

2.1 编写简单的程序

  编写程序设计如何设计算法以及如何将这些算法翻译成程序指令,即代码。  算法描述的是:如果要解决问题,所需要执行的动作以及这些动作执行的顺序。算法可以帮助程序员在使用设计语言编写程序之前做一个规划。算法可以用自然语言或伪代码描述。例如一个圆面积计算的程序算法如下描述:
  1)读入半径。
  2)利用下面的公式计算面积:
面积=半径半径3.14
  3) 显示面积。

public class ComputeArea{
    public  static  void  main(string[]args) {
    double radius ;
    double  area;
    radius=20;
    area=radius*radius*3.14;
    System.out.println("The  area for  the circle of radius"+  radius   " is  "  +area);
    }
    }

像radiu和area这样的变量对应于它们在内存的位置。每个变量都有名字,类型,大小和值。第三行声明radius可以存储一个double型的数值。直到给他赋一个数值时,该变量才被定义。

2.2 从控制台读取输入

  从控制台读取输入,使得程序可以从用户那里获得输入。在上面的程序中,源代码的半径是固定的,为了能使用不同的半径,必须修改源代码然后重新编译它。很显然,这是非常不方便的。可以使用Scanner类从控制台输入。
  Java使用System.out来表示标准输出设备,而用System.in,表示标准输入设备。默认情况下,输出设备是显示器,而输入设备是键盘。为了完成控制台输出,只需要用println方法就可以在控制台上显示基本值或字符串。Java并直接支持控制台输入,但是可以使用Scanner类创建它的对象,以读取来自System.in的输入。
  提示用户输入一个半径,然后就算它的面积,运行程序如下:

import java.uti1.Scanner; 
public class ComputeArea;
   public static void main (String[] args) {
      Scanner scanner = new ScannerfSystem.in);
      System,out.print("Enter a number for radius);
      double radius =Scanner.nextDouble():
      double area= radius * radius * 3.14159;
     System.out. println("The area for the circle of radius '' + radius + " is '' + area);
      }
}

例 读取三个数值,然后显示他们的平均值

  import java.util.Scanner;
     public class ComputeAverage{
           public static  void main(string[] args){
           Scanner scanner=new scanner(System.in);
           System.out.print("Enter the  three number");
           double number1=scanner.nextDouble;
           double number2=scanner.nextDouble;
           double number3=scanner.nextDouble;
           double  average=(numer1+number2+number3)/3;
           System.out.println("The average of  "+number1+"  "+number2+"  "+number3+"  is  "+ average);
         }
    }

2,3 标识符

  标识符是为了标识程序中诸如类,方法,和变量的元素而采用的命名。正如main,scanner,number等出现在程序中事物的名字。所有的标识符都必须遵循以下的规则:
  1)标识符是由字母,数字,下划线和美元符号构成的字符序列。
  2)标识符必须以字母,数字,下划线和美元符号开头,不能以数字开头。
  3)标识符不能是保留字
  4)标识符不能是true,false或null。
  5)标识符可以为任意长度。

2.4 变量

  变量用于表示程序中可以被改变的值。

2.5 赋值语句和赋值表达式

  赋值语句将一个值指定给一个变量。

2.6 命名常量

  命名常量是一个代表不变值的标识符

2.7 命名习惯

  1)使用小写字母命名变量和方法。如果一个名字包括多个单词,就将他们连在一起,第一个单词的字母小写,而后面每个单词的首字母大写。
  2)类名中的每个单词的首字母大写。
  3)大写常量中的所有字母,两单词间用下划线连接。

2.8 数值数据类型和操作

  Java针对整数和浮点数有六种数值类型,以及+,-,*,/,和%等操作符。

2.8.1 数值类型

  每个数据类型都有它的取值范围。编译器会根据每个变量或常量的数据类型为其分配内存空间。Java为数值,字符值和布尔值数据提供的八种基本数据类型。

2.8.2 从键盘读取数值

在这里插入图片描述

2.8.3 数值操作符

  数值数据类型的操作符包括标准的算术操作符。

2.8.4 幂运算

  使用方法Math.pow((a,b)来计算a的b次幂。

2.9 数值型直接量

一个直接量是一个程序中直接出现的常数值。

2.9.1 整型直接量

  只要整型直接量与整型变量相匹配,就可以将整型直接量赋值给该整型变量。如果直接量太大,超出变量的存储范围,就会出现编译错误。

2.9.2 浮点型直接量

  浮点型直接量带小数点,默认情况下是 double 型的。

2.10 表达式求值以及操作符优先级

  Java表达式的求值和数学表达式是一样的。

2.11 示例学习:显示当前时间

  编写程序计算从GMT 1970年1月1日00:00:00开始到当前的毫秒数。

 public class  ShowCurrentTime{
         public  static  void  main (string[] args){
          //获取从1970年1月1日到现在的秒数;
          long totalmillisecond=System.currentTimeMillis;
          //总毫秒数除1000获取总秒数;
          long  totalSecond=totalMillisecond/1000;
          //总秒数除60获取分钟数
          long  totalMinutes=totalSecods/60;
          //总分钟数除60获取小时数
          long  totalHours=totalMinutes/60;
          //总小时数除24获取  当前小时数
          long  currentHour=totalHours%24;
          //显示当前的时间;
          System.out.println("Current time is " +curretHour +":"+  currentMinute  +":"+  currentSecond +"GMT");
          }
      }

2.13 增强赋值操作符

  操作符+, -, *, /, %可以结合赋值操作符形式增强操作符。例: i+=8等价于i=i+8

2.14 自增和自减操作符

  自增操作符(++)和自减操作符(–)是对变量进行加1减1的操作。
在这里插入图片描述

2.15 数值类型转换

  通过显示转换,浮点数可以被转换为整数。

2.16 软件开发过程

  软件开发生命周期是一个多阶段的过程,包括需求规范、分析、设计、实现、测试、部署和维护。

练习题

在这里插入图片描述

import  Java.until.scanner
public  class  demo2_1{
     public static  void  main(string[]  args){
       Scanner scanner=new Scanner(System.in);
       System.out.print("Enter a degree  in  celsius:");
       double  celsius=scanner.nextDouble();
       double   Fahrenheit=(9/5)*celsius+32;
       System.out.println(celsius+"celsius is"  +fahrenheit+"fahrenheit");
       }
  }

在这里插入图片描述

 import  Java.until.scanner
    public  class  demo2_2{
         public static  void  main(string[]  args){
           Scanner scanner=new Scanner(System.in);
           //提示用户输入半径和高
           System.out.print(Enter  the  radius  and length  of  a  cylinder:);
           double  radius=scanner.nextDouble();
           double length=scanner.nextDouble();  
           double  PI=3.14;
                //计算面积体积
           double area=radius*radius*PI;
           double  volume=area*length;
               //将体积输出
            System.out.println( "The  area is"  +area);
             System.out.println("The  volume is" + volume);
             }
       } 

在这里插入图片描述

import  Java.until.scanner
    public  class  demo2_3{
         public static  void  main(string[]  args){
         //获取用户输入的数字
             Scanner scanner=new Scanner(System.in);
             System.out.print("Enter a number between 0 and  1000:);
            int  number=scanner.nextInt();
            //将数字进行分解
            /*
            987%10=7->a
            987/10=98
            98%10=8->b
            98/10=9
            9%10=9->c
            a+b+c
            */
            int  a=number%10;
            number/=10;
            int b=number%10;
            number/=10;
            int c=number%10;
            //将三个数字相加并输出
            System.out.println("The  sum of the digit is" +(a+b+c));
            }
     }

在这里插入图片描述

import  Java.until.scanner
        public  class  demo2_3{
             public static  void  main(string[]  args){
             //获取用户输入的数字
                 Scanner scanner=new Scanner(System.in);
                 System.out,print("Enter  the number of minutes:);
            /*总分钟数除60算出小时数
               总小时数除60出天数算
               总天数处365算出年数
               */
               int  minutes=scanner.nextInt();
               int  days=minutes/60/24;
               int   years=days/365;
               days=days%365;
               // 输出天数和年数
               System.out,println(minnutes+" minutes  is approximately" +years+"   years  and "+days+"days");
               }
         }
         为什么求出来的天数要对365取余

在这里插入图片描述

import  Java.until.scanner
            public  class  demo2_3{
                 public static  void  main(string[]  args){
                 //获取用户输入的时间
                     Scanner scanner=new Scanner(System.in);
                     System.out,print("Enter  the number of minutes:);
                  //获取偏移量
		System.out.print("Enter the time zone offset to GMT:");
		int offset=scanner.nextInt();
		long millis=System.currentTimeMillis();
		long seconds=millis/1000;
		long minutes=seconds/60;
		long hours=minutes/60;
		        //如何从经过的毫秒值里获取当前小时 总小时%24
		System.out.print(hours%24+offset+":");//东八区+8
		       //...当前分钟
		System.out.print(minutes%60+":");
		      //...当前秒
		System.out.println(seconds%60);
	}
}

在这里插入图片描述

import  Java.until.scanner
            public  class  demo2_3{
                 public static  void  main(string[]  args){
                 //获取用户输入的水重量 初始温度 最终温度
                     Scanner scanner=new Scanner(System.in);
                     System.out.print("Enter  the amout  of water in  kilograms:);
                     double  weight=scanner.nextDouble();
                     System.out.print("Enter  the  initial temperature:);
                     double
                     initialTemp=scanner.nextDouble();
                     System.out.print("Enter  the final temperature:);
                     double  finalTemp=scanner.nextDouble();
                     //根据公式计算能量
                     double  energy=weight*(finalTemp-initialTemp)*4184;
                     //输出能量值
                     System.out.println("The energy needed is"+ energy);
                     }
            }

在这里插入图片描述

import  Java.until.scanner
                public  class  demo2_3{
                     public static  void  main(string[]  args){
                     //获取用户账户存钱金额
                         Scanner scanner=new Scanner(System.in);
                         System.out.print("Enter the monthly  saving  amount:);
                         double money=100;
                         double  rata=0.00417;
                         money=money*(1+rate);
                         money=(money+100)*(1+rate);
                         money=(money+100)*(1+rate);
                         money=(money+100)*(1+rate);
                         money=(money+100)*(1+rate);
                         System.out.println("After the 
sixth month, the accout  value  is " +money);
      }
}

在这里插入图片描述

 import  Java.until.scanner
                    public  class  demo2_3{
                         public static  void  main(string[]  args){
                         //提示用户输入两个点
                             Scanner scanner=new Scanner(System.in);
                             System.out.print(“Enter x1 and  y1”);
                             double x1=scanner.nextDouble();
                             double y1=scanner.nextDouble();
                             System.out.print(“Enter x2 and  y2”);
                             doublex2=scanner.nextDouble();
                             double y2=scanner.nextDouble();
                             //计算两点之间的距离
                             double distance=Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2));
                              System.out.println("The  distance between the two point is"+distance);
                              }
                       }

在这里插入图片描述

 import  Java.until.scanner
                        public  class  demo2_3{
                             public static  void  main(string[]  args){
                             //提示用户输入六边形的边长
                                 Scanner scanner=new Scanner(System.in);
                                 System.out.print(“Enter  the  side  of  hexagon ”);
                                 double  side=scanner.nextDouble();
                            //计算六边形的面积
                                 double area=(3*Math.pow(3,0.5))/2*
                                 side*side;
                             //  输出六边形的面积
                             System.out.print("The  area  of  the  hexagon  is"+ area);
                             }
                    }

在这里插入图片描述

import  Java.until.scanner
                            public  class  demo2_3{
                                 public static  void  main(string[]  args){
                                 //提示用户在-58到41之间的度数, 以及风速
                                     Scanner scanner=new Scanner(System.in);
                                     System.out.print("Enter  the  temperature  in Fahrenheit  between -58°F  and   41°F:)s  per hour
                                     double  t=scanner.nextDouble();
                                     System.out.print(“ Enter  the wind  speed  in  miles (>=2) per hour:”);
                                     double v=scanner.nextDouble();  
                                     double T=35.74+0.6215t-35.75*Math.pow(v,0.16)+0.4275*t*Math.pow(v,0.16);
                                     //输出风寒度
                                     System.out.println("The wind chill   index is"+ T);
                                     }
                             }

在这里插入图片描述

import  Java.until.scanner
                                public  class  demo2_3{
                                     public static  void  main(string[]  args){
                                     //提示用户输入三个点的坐标
                                         Scanner scanner=new Scanner(System.in);
                                         System.out.print("Enter  three  points for  a triangle :);
                                         double x1=scanner.nextDouble();
                                         double y1=scanner.nextDouble();
                                         double x2=scanner.nextDouble();
                                         double y2=scanner.nextDouble();
                                         double x3=scanner.nextDouble();
                                         double y3=scanner.nextDouble();
                                    //2.根据坐标求三边
		                                   double sideA=Math.sqrt(Math.pow(x1-x2, 2)+Math.pow(y1-y2, 2));
		                                   double sideB=Math.sqrt(Math.pow(x1-x3, 2)+Math.pow(y1-y3, 2));
		                                   double sideC=Math.sqrt(Math.pow(x2-x3, 2)+Math.pow(y2-y3, 2));
		                           //3.根据三边求面积
		                                   double s=(sideA+sideB+sideC)/2;
		                                   double area=Math.sqrt(s*(s-sideA)*(s-sideB)*(s-sideC));
		                                   System.out.println(“The  erea  of  the  triangle is" + area    );
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值