java基础_week 1 计算

【根据翁恺老师的零基础学java课程整理的笔记。】

week 1 计算

1.0 计算机和编程语言
计算机- 程序 - 算法

计算机和人类的思维有着明显的区别,计算机的重要特征之一是”重复“。程序是用特殊的编程语言写出来表达如何解决问题的,谈及编程语言,我们不是用编程语言来和计算机交谈,而是描述要求计算如何做事情的过程或者方法。

算法:计算机做的所有事情都叫做计算。计算的步骤就是算法。

程序的执行

解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行。(下一次执行这个文件,仍然需要同样的步骤)

编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂的语言——机器语言——写的程序,然后,这个机器语言写的程序就能直接执行了。(多出了中间文件)

在这里插入图片描述

1.1 第一个java程序
tips:eclipse部分快捷操作
  • eclipse中输入前几个字母,然后 alt + “/ ”来让eclipse自动为你补全必要的代码,可以快速选定自己需要内容,对于选定内容可以直接双击或者方向键上下移动+回车选定。
  • 我们要习惯用键盘来完成各种操作。shift +方向键上下移动选中行,shift + 方向键作于移动选中此行部分内容,选中所需要的内容后,ctrl + “/" 可以注释掉所选中行,再次按下是取消注释。
  • debug模式:设置断点是程序调试中必不可少的有效手段,Java调试器每次遇到程序断点时都会将当前线程挂起,即暂停当前程序的运行。可以在Java编辑器中显示代码行号的位置双击添加或删除当前行的断点,或者在当前行号的位置单击鼠标右键,在弹出的快捷菜单中选择“Toggle Breakpoint”命令实现断点的添加与删除。将光标定位在要设置断点的行,按下键盘中的<Ctrl+Shift+B>快捷键也可以添加或删除断点。
读输入
Scanner in = new Scanner(System.in);
System.out.println(in.nextLine());

先将第一行抄在笔记本上,任何需要读用户输入的程序都需要这行。

运行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vAXoI9qW-1612447399076)(D:/2020/desktop/typora暂存处/java基础.assets/image-20210116164149009.png)]

  • 输入也在终端窗口中运行(eclipse中界面最下方 - Console,即图中1);
  • 红色的小方块(图中2)表示程序正在运行;
  • 输入是以行为单位进行的,行的结束标志就是你按下了回车键。在你按下回车之前,你的程序不会读到任何东西。
  • 新手常犯的一个错误是,当程序没有回应的时候反复地按下运行,界面仿佛没有变化,但是点开图中3中可以看到多个程序在后台运行
读入一行文字
System.out.println(in.nextLine());

让in这个对象读入下一行的动作,结果交给System.out这个对象去打印一行。

字符串的+

用来连接两个字符串形成更长的。参见代码1-1的16行。

1.2 变量与计算
变量

int price = 0;这一行,定义了一个变量。变量的名字是price,类型是int,初始值是0。变量是一个保存数据的地方,当我们需要在程序里保存数据时,就需要一个变量来保存它。用一个变量保存了数据,它才能参与到后面的计算中,比如计算找零。

变量定义

变量定义的一般形式就是:

<类型名称><变量名称>;

变量的名字
  • 变量需要一个名字,变量的名字是一种”标识符“,意思是用它来识别这个或那个的不同的名字。
  • 标识符有标识符的构造规则。基本的原则是:标识符只能由字母、数字、下划线组成,数字不可以出现在第一个位置上,Java的关键字(有的地方叫作保留字)不可以用作标识符。
  • image-20210116173611433
变量赋值:

赋值和初始化:int price = 0;这一行,定义了一个变量。变量的名字是price,类型是int,初始值是0。price = 0 是一个式子,这里的“=”是一个赋值运算符,表示将“=”右边的值赋给左边的变量。

赋值:和数学不同,a=b在数学中表示关系,即a和b的值一样;而在Java中,a = b 表示要计算机做一个动作:将b的值赋给a。关系是静态的,而动作是动态的。在数学中,a=b和b=a是等价的,而在Java中,两者的意思完全相反。

初始化:当赋值发生在定义变量的时候,就是变量的初始化。虽然Java语言并没有强制要求所有的变量都在定义的地方做初始化,但是要求所有的变量在第一次被使用(出现在赋值运算符的右边)之前被赋值。

变量初始化:

形如 <类型名称> <变量名称> = <初始值>;

如:int price = 0;
int amount = 0;

组合变量定义的时候,也可以在这个定义中单独给单个变量赋初值,如 int price =0,amout = 100;

表达式:“=”是赋值运算符。有运算符的式子就叫做表达式。

变量类型:

  • int price = 0;这一行,定义了一个变量。变量的名字是price,类型是int,初始值是0。
  • Java是一种强类型语言,所有的变量在使用前必须定义或者声明,所有的变量必须具有确定的数据类型。数据类型表示在变量中可以存放什么样的数据,变量中只能存放指定类型的数据,程序运行过程中也不能改变变量的类型。

常量: 固定不变的数,是常数。直接写在程序里,我们称作直接量*(literal)*,更好的方式是定义一个常量,如 final int AMOUNT =100;

final: final是一个修饰符,加在int的前面,用来给这个变量加上一个final(最终的)属性。这个final的属性表示这个变量的值一旦初始化,就不能再修改了。如果你试图对常量做修改,把它放在赋值运算符的左边,就会被Java发现,指出为错误。

	public static void main(String[] args) {
		System.out.println("你好");
		Scanner in = new Scanner(System.in);
//		System.out.println("echo:"+in.nextLine());
        //我们写代码时候常用这种方式给数据一个“回应”
		int price = 0;
		int amount = 100;
		System.out.print("请输入票面:");
//		System.out.println(price);
		amount = in.nextInt();
		System.out.print("请输入金额:");
		price = in.nextInt();
      	//每次召唤in.nextInt(),它就等待用户输入一个整数
        //程序要求读入多个数字时,可以在一行输入中间用空格隔开,也可以在多行输入
		System.out.println(amount+"-"+price+"="+(amount-price));
	}

代码 1-1


1.3 浮点数
浮点数

带小数点的数值。浮点这个词的本意就是指小数点是浮动的,是计算机内部表达非整数(包含分数和无理数)的一种方式。另一种方式叫做定点数,不过在Java中你不会遇到定点数。人们借助浮点数这个词来表达所有的带小数点的数。

当浮点数和整数放在一起运算时,Java会将整数转换为浮点数,然后进行浮点数的运算。

double: double的意思是“双”,它本来是“双精度浮点型"的第一个单词,人们用来表示浮点数的类型。

**浮点运算的精度:**浮点计算是有误差的。参见代码2-1中的第7行。

整数:整数类型不能表达有小数部分的数,整数和整数运行的结果还是整数。计算机里会有纯粹的整数这种奇怪的东西,是因为整数的运算比较快,而且占用地方也比较小。其实人们日常生活中大量做的还是纯粹整数的计算,所以整数的用处还是很大的。

其他计算问题:
运算符优先级

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-siSKedLj-1612447399080)(D:/2020/desktop/typora暂存处/java基础.assets/image-20210116183556420.png)]

**单目运算符:**只有一个算子的运算符。

**结合关系:**一般是自左向右,单目+=和赋值=自右向左。

强制类型转换

比如我们如果想把一个浮点数的小数部分去掉,变成整数。

进行强制类型转换的形式是 (类型)值 ,比如 int i = (int)(32/3.0);

强制类型转换只是从那个变量计算出了一个新的类型值,它并不改变那个变量,无论是值还是类型都不改变。

强制类型转换的优先级高于四则运算

	public static void main(String[] args) {
        //代码目的:输入表示英尺英寸的两个数,计算处转化后的公制长度身高
		int foot;
		double inch;
		foot =(int)(30/3.0);
        //整数除以浮点数得浮点数,结果是10.0,再强制转换成int型
//		System.out.println(1.2-1.1);
        //因为精度问题,结果并不是我们日常生活中的0.1,可以自己运行感受一下
		Scanner in = new Scanner(System.in);
		foot = in.nextInt();
		inch = in.nextInt();
		System.out.println(10/3);
		System.out.println("foot="+foot+",inch="+inch);
		System.out.println((int)((foot+inch/12.0)*0.3048*100));
	}

代码 1-2


;
System.out.println(10/3);
System.out.println(“foot=”+foot+",inch="+inch);
System.out.println((int)((foot+inch/12.0)0.3048100));
}


​																						**代码 1-2**

------


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值