MOOC翁凯_零基础学Java语言
Week 1 计算
1.0 计算机与编程语言
程序的执行:解释和编译(翻译成计算机能懂的机器语言)
1.1 第一个Java程序
JRE:Java运行环境,Oracle网站
Eclipse/IDEA:编程软件
- Alt + / :自动补全代码
- Ctrl + /:注释comment,单行注释
//
,多行注释/**/
1.2 变量与计算
读输入
Scanner in = new Scanner(System.in);
变量定义:<类型名称><变量名称>;
变量名称是一种标识符;标识符由字母、数字和下划线组成,数字不能出现在首位;Java关键字/保留字不能用作标识符;Java语言要求变量在第一次被使用前被赋值。
Java是一种强类型的语言,变量在使用前必须定义或声明,且必须具有确定的数据类型。
常量/直接量(literal):final int AMOUNT = 100;
1.3 浮点数计算
浮点数:带小数点的数值,小数点是浮动的,计算机表达非整数(分数和无理数)的一种方式。浮点计算是有误差的(都是二进制惹的祸)
Java中不会遇到定点数
运算符优先级:单目取负,自右向左 a*-b
强制类型转换:(类型)值
优先级高于四则运算
Week 2 判断
2.1 比较
优先级:算数运算>关系运算>赋值运算
2.2 判断
习惯:if
和else
后面总是用{}
,即使只有一条语句
if(expi){st1;}
else if(exp2){st2;}
else{st3;}
if ( a==b ){} else System.out.println("no");
if ( a==b ); else System.out.println("no");
多路分支:
switch(type){ //控制表达式只能是整数型的结果case 1: //常量可以是常数,也可以是常数计算的表达式sentence; // 寻找匹配的case,并执行其后的语句,直到break为止break;default:sentence;
}
x in [-10, 0]
表示“当 x 的取值在 [-10, 0] 的范围内,结果为真,否则为假”。
Week 3 循环
3.1 循环
while
while(<循环条件>){<循环体语句>
}
do-while循环:循环至少会执行一次
do{<循环体语句>
}while(<循环条件>);
数数
int number = in.nextInt();
int count = 0;
while(number>0){number /= 10;count ++;
}
3.2 循环的例子
Math.radom()
得到一个[0,1)范围内的随机数
整数的分解:%10
得到个位数;/10
去掉个位数
Week 4 循环控制
4.1 for循环
习惯:求和时result初始化为0;求积时resule初始化为1
习惯:只要是for
语句就跟上{}
,即使是空循环
for(初始化; 条件; 单步动作){ // 每一个表达式可以省略
}
Tips for loops
- 如果有固定次数,用for
- 如果必须执行一次,用do-while
- 其他情况用while
复合赋值
i++
变量+1,表达式为变量原值
++i
变量+1,表达式为变量+1后的值
4.2 循环控制
break
vs continue
:跳出循环 vs 跳过循环这一轮剩下的语句进入下一轮,仅对当层循环生效;带标号的break和continue可对那个表示循环起作用。
Outer:
for(;;){for(;;){if(){st1;break Outer;}}
}
goto
:跳出多层循环
for(;;){for(;;){if(...) goto OUT;}
}
OUT:...
4.3 循环的例子
求最大公约数:碾转相除法
Scanner in = new Scanner(System.in);
int a,b,t;
a = in.nextInt();
b = in.nextInt();
int origa = a;
int origb = b;
while(b!=0){ // 如果b=0,a就是最大公约数t = a % b;a = b;b = t;}
System.out.print(a)
逆序分解整数
Scanner in = new Scanner(System.in);
x = in.nextInt();
do{System.out.println(x%10);x /= 10;
}while(x>0);
逆序输出整数
Scanner in = new Scanner(System.in);
int x = in.nextInt();
int y = 0;
do{y = y*10 + x%10x /= 10
} while(x>0);
正序输出整数
for(int i=0; i<n; i++){ //n为x的位数,mode为10的n-1次方System.out.println(x/mode);x %= mode;mode /= 10;
}
Week 5 数组
5.1 数组
<类型>[] <名字> = new <类型>[元素个数];
数组变量是数组的管理者而非数组本身
for(<类型><变量>:<数组>){...
}
数组的大小无须在写程序时就确定
int n; // 从其他来源处获取 n 的值
char[] chars1 = new char[n];
每个数组有一个内部成员length告诉你元素的数量
int m[] = {1,2,3,4,5};
System.out.print(m.length); // m.length为5
5.2 数组计算
素数:遍历sqrt(x)即可
for(int i=3; i<Math.sqrt(x); i+=2){if(x % i == 0){isPrime = false;break;
}
5.3 二维数组
二维数组:int[][] a = new int[3][5];
初始化:
int[][] a ={{1,2,3,4},{1,2,3},
};
Week 6 使用对象
6.1 字符类型
单个字符了诶性char
:用单引号表示字符面量1
,a
Java使用Unicode来表示字符,可以表达包括汉字在内的多重字符
逃逸字符:反斜杠+字符,如换行\n
、制表位\t
6.2 包裹类型
包裹类型是一种数据类型,他可以像基础类型定义数据类型,区别在于包裹类型把基本数据类型的数据转换为对象的形式,可以像对象一样参与运算和传递,有一系列方法可供使用,如
Integer.MAX_VALUE
Character.isDigital()
6.3 字符串
字符串:用双引号括起来的0个或多个字符就是一个字符串字面量。String是一个类,String的变量是对象的管理者而非所有者。
String s = new String("a string"); //new=创建
输入字符串
in.next();
读入一个第单词,单词的标志是空格(空格包括空格、tab和换行)in.nextLine();
读入一整行
字符串操作运算:字符串不可变,操作结果均是制造新的字符串(String方法:菜鸟教程>Java String方法)
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2); // 输出true
字符串的操作:Java菜鸟教程>String类>Sring方法
str.length()
用length()函数获得字符串的长度
str1 == "string"
比较是否为同一个字符串
stri.equals(str2)
比较字符串内容是否相同
Week 7 函数
7.1 函数的定义与调用
public static void sum(int a, int b){int sum = 0;sum = a + b;System.out.print(sum);
调用函数:()
起到了表述函数调用的重要作用
return
:停止函数执行,并送回一个值(习惯:单一出口)
7.2 函数参数与函数内的变量
本地变量:定义在函数内部的变量,如参数,作用于在{}
块内
MOOC翁凯_零基础学Java语言相关推荐
- MOOC翁恺老师零基础学Java语言课程编程题——第六周
1 单词长度(5分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如"it's& ...
- 翁恺java答案第五周_[JAVA]翁恺老师零基础学java语言第五周素数例题中continue的困惑...
第五周求前50个素数的例子中,continue跳出当次循环后的疑问 例题中的这段: ======================================== MAIN_LOOP: for(in ...
- java基础大全app,中国大学MOOC的APP2020年零基础学Java语言期末考试大全答案
[多选] ATM地址可能会出现在下列哪条信令中() [单选] 下列有关于位图模式的表述正确的一项是?() [单选] 建筑职工意外伤害保险保险期限到()止. [单选] 自然率假说认为() [单选] 地震 ...
- Java学习记录_1:MOOC《零基础学Java语言》课后习题解
Hey,我是寒水,一名大二学生,电子商务专业在读,正在学习Java中.我试图将在Java学习中遇到的一些困惑和最终的解答发在这个账号上,希望以此来激励我不要放弃学习! 在学习记录这个专题中,我收藏一些 ...
- 关于Java零基础的公众号_大学mooc零基础学Java语言答案公众号
大学mooc零基础学Java语言答案公众号 更多相关问题 A principal decided to honor the teachers in his school to show his app ...
- 『零基础学Java语言-浙江大学-翁恺』第6周 使用对象
以下为个人学习笔记和习题整理 课程:零基础学Java语言-浙江大学-翁恺 @ 中国大学MOOC https://www.icourse163.org/course/ZJU-1001541001 文章目 ...
- java无线电台RS制信号_中国MOOC_零基础学Java语言_第2周 判断_2信号报告
2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength) 信号强度即大小. 其中R位于报告第一 ...
- 翁恺《零基础学习Java语言》作业答案 第1周到第7周
翁恺<零基础学习Java语言>作业答案 第1周到第7周全部 文章目录 前言 一.第1周 计算 1.温度转换 二.第2周 判断 1.时间换算 2.信号报告 二.第3周 循环 1.奇偶个数 2 ...
- 零基础学Java语言---编程题
零基础学Java语言-编程题 注意:没有上机实际测过,代码仅供参考 1.温度转换 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示 ...
最新文章
- 冷链食品竟然也有 “身份证”?
- 天啊!NBA球星将举办第一届科技峰会!
- 毕业设计-人脸表情识别系统、人工智能
- PS Raw增效工具 - Adobe Camera Raw14 for mac
- window.showModalDialog乱码(完美)解决方案
- Sell yourself 1
- 最常被利用的三大 API 漏洞:是什么、为什么、如何阻止?
- 基于Visua C++2010 与 Windows 7 SDK开发windows7 Shell应用(1)-搜索文件夹
- 努力就一定会成功,这或许是一个问题?
- 李开复给大学生的第7封信:21世纪最需要的7种人才
- 游戏开发入门如何点亮技术树?
- 基于matlab的电池管理系统开发,使用 Simulink 和基于模型的设计开发电池管理系统...
- linux分配oracle内存,【学习笔记】Linux系统 ORACLE用户进程占用私有内存分析
- 页面中的黑白滤镜css3,filter属性
- 基于Python实现的论坛帖子情感分析
- 《Linux Kernel Development》读书笔记
- App产品原型背后要交代的细节和要理解的原则(上)
- c语言设计生命游戏,C语言实现生命游戏.doc
- 微星主板黑苹果_小白安装黑苹果应该要知道的事情
- vmware虚拟机挂载ISO镜像并创建本地yum源