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 判断

习惯:ifelse后面总是用{},即使只有一条语句

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:用单引号表示字符面量1a

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语言相关推荐

  1. MOOC翁恺老师零基础学Java语言课程编程题——第六周

    1 单词长度(5分) 题目内容: 你的程序要读入一行文本,其中以空格分隔为若干个单词,以'.'结束.你要输出这行文本中每个单词的长度.这里的单词与语言无关,可以包括各种符号,比如"it's& ...

  2. 翁恺java答案第五周_[JAVA]翁恺老师零基础学java语言第五周素数例题中continue的困惑...

    第五周求前50个素数的例子中,continue跳出当次循环后的疑问 例题中的这段: ======================================== MAIN_LOOP: for(in ...

  3. java基础大全app,中国大学MOOC的APP2020年零基础学Java语言期末考试大全答案

    [多选] ATM地址可能会出现在下列哪条信令中() [单选] 下列有关于位图模式的表述正确的一项是?() [单选] 建筑职工意外伤害保险保险期限到()止. [单选] 自然率假说认为() [单选] 地震 ...

  4. Java学习记录_1:MOOC《零基础学Java语言》课后习题解

    Hey,我是寒水,一名大二学生,电子商务专业在读,正在学习Java中.我试图将在Java学习中遇到的一些困惑和最终的解答发在这个账号上,希望以此来激励我不要放弃学习! 在学习记录这个专题中,我收藏一些 ...

  5. 关于Java零基础的公众号_大学mooc零基础学Java语言答案公众号

    大学mooc零基础学Java语言答案公众号 更多相关问题 A principal decided to honor the teachers in his school to show his app ...

  6. 『零基础学Java语言-浙江大学-翁恺』第6周 使用对象

    以下为个人学习笔记和习题整理 课程:零基础学Java语言-浙江大学-翁恺 @ 中国大学MOOC https://www.icourse163.org/course/ZJU-1001541001 文章目 ...

  7. java无线电台RS制信号_中国MOOC_零基础学Java语言_第2周 判断_2信号报告

    2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength)    信号强度即大小. 其中R位于报告第一 ...

  8. 翁恺《零基础学习Java语言》作业答案 第1周到第7周

    翁恺<零基础学习Java语言>作业答案 第1周到第7周全部 文章目录 前言 一.第1周 计算 1.温度转换 二.第2周 判断 1.时间换算 2.信号报告 二.第3周 循环 1.奇偶个数 2 ...

  9. 零基础学Java语言---编程题

    零基础学Java语言-编程题 注意:没有上机实际测过,代码仅供参考 1.温度转换 写一个将华氏温度转换成摄氏温度的程序,转换的公式是: °F = (9/5)*°C + 32 其中C表示摄氏温度,F表示 ...

最新文章

  1. 冷链食品竟然也有 “身份证”?
  2. 天啊!NBA球星将举办第一届科技峰会!
  3. 毕业设计-人脸表情识别系统、人工智能
  4. PS Raw增效工具 - Adobe Camera Raw14 for mac
  5. window.showModalDialog乱码(完美)解决方案
  6. Sell yourself 1
  7. 最常被利用的三大 API 漏洞:是什么、为什么、如何阻止?
  8. 基于Visua C++2010 与 Windows 7 SDK开发windows7 Shell应用(1)-搜索文件夹
  9. 努力就一定会成功,这或许是一个问题?
  10. 李开复给大学生的第7封信:21世纪最需要的7种人才
  11. 游戏开发入门如何点亮技术树?
  12. 基于matlab的电池管理系统开发,使用 Simulink 和基于模型的设计开发电池管理系统...
  13. linux分配oracle内存,【学习笔记】Linux系统 ORACLE用户进程占用私有内存分析
  14. 页面中的黑白滤镜css3,filter属性
  15. 基于Python实现的论坛帖子情感分析
  16. 《Linux Kernel Development》读书笔记
  17. App产品原型背后要交代的细节和要理解的原则(上)
  18. c语言设计生命游戏,C语言实现生命游戏.doc
  19. 微星主板黑苹果_小白安装黑苹果应该要知道的事情
  20. vmware虚拟机挂载ISO镜像并创建本地yum源

热门文章

  1. 使用Verilog语言描述计数器——脉动计数器;脉动计数器具有减法计数功能。采用模块设计和行为级设计方法。
  2. 【剑桥摄影协会】超焦距
  3. 跟着黑马视频,Tomcat显示404的问题
  4. 【最新版】腾X软件管理电脑管家提取免安装绿色版,比官方软件好用很多!
  5. [转]杜比TrueHD(Dolby TrueHD)音频编码解析
  6. OpenJudge NOI题库 1.5编程基础之循环控制
  7. 通过Is夹角来实现MTPA和FW
  8. 那天,妹子给我发来了一串乱码…
  9. ecmall 如何新增挂件
  10. python int 转byte,byte转int