JAVA基础03选择

java基础String类选择题练习题 java基础String类选择题练习题,文档包含了答案与分析,适合学习用,本文档仅仅用于学习分享,不得用于商业用途 立即下载

3.选择

3.1 boolean 数据类型

boolean 数据类型声明一个具有值 true 或者 false 的变量。

Java 提供六种关系操作符( relational operator) ,也称为比较操作符( comparison operator),用于两个值的比较(假设表中的半径值为 5 )。

 

相等的关系操作符是两个等号(==), 而不是一个等号(=), 后者是指赋值操作符。

比较的结果是一个布尔值:true (真)或 false (假)。例如,下面的语句显示 true:

double radius = 1;
System.out.println(radius > 0);

具有布尔值的变量称为布尔变量( boolean variable), boolean 数据类型用于声明布尔型变量。boolean 型变量可以是以下这两个值中的一个:true 和 false。例如,下述语句将true 赋值给变量 lightsOn:

boolean lightsOn = true;

true 和 false 都是直接量,就像 10 这样的数字。它们被当作保留字一样,不能用做程序中的标识符。

 

 

3.2 if 语句

if 语句是一个结构,允许程序确定执行的路径。

Java 有几种类型的选择语句:单分支 if 语句、双分支 if - else 语句、嵌套 if 语句、多分支 if - else 语句、switch 语句和条件表达式。

单分支 if 语句是指当且仅当条件为 true 时执行一个动作。单分支 if 语句的语法如下:

if (布尔表达式){
    语句(组):
}

语句流程图

布尔表达式应该用括号括住。例如:下面图 a 中的代码是错误的。应该将它改为如图 b 所示。

如果花括号内只有一条语句,则可以省略花括号。例如:下面两个语句是等价的。

注意:省略括号可以让代码更加简短,但是容易产生错误。当你返回去修改略去代码的时候,容易忘记加上括号。这是一个常犯的错误。

 

 

3.3 双分支 if-else 语句

if-else 语句根据条件是真或者是假,决定执行的路径。

根据条件为 true 或 false, 双分支 if 语句可以指定不同的操作。

下面是双分支 if - else 语句的语法:

if (布尔表达式> {
    布尔表达式为其时执行的语句(组);
}
else{
    布尔表达式为假时执行的语句(组);
}

语句流程图

如果布尔表达式的计算结果为 true, 则执行条件为 true 时该执行的语句;否则,执行条件为 false 时该执行的语句。例如,考虑下面的代码:

if(radius >= 0){
    area = radius * radius * PI;
    System.out.println("The area for the circle of radius " + radius + “is” + area);
}else {
    System.out•println("Negative input");
}

若 radius>=0为 true, 则计算并显示 area ; 如果 radius> = 0为 false, 则打印信息 "Negative input"。

通常,如果花括号中只有一条语句,则可以省略花括号。因此,前例中用于括住语句 System,out.println("Negative input")的花括号可以省略。

 

 

3.4 嵌套的 if 语句和多分支 if - else 语句

if 语句可以在另外一个 if 语句中,形成嵌套的 if 语句。

if 或 if -else 语句中的语句可以是任意合法的 Java 语句,甚至可以是其他的 if 或if - else 语句。内层 if 语句称为是嵌套在外层 if 语句里的。内层 if 语句还可以包含其他的 if 语句;事实上,对嵌套的深度没有限制。例如,下面就是一个嵌套的 if 语句:

1f(i > k){
    if (j > k)
    System.out.println("i and» j are greater than k");
}else{
    System.out.println("i is less than or equal to kM);
}

嵌套的 if 语句可用于实现多重选择。例如:下图中所给出的语句使用了多重选择, 根据分数给变量 grade 赋一个用字母表示的级别。

 

可以使用多分支 if-else 语句来给出一个分数

 

 

 

3.5 常见错误和陷阱

忘记必要的括号,在错误的地方结束 if 语句,将 == 错当作=使用,悬空 else分支,是选择语句中常见的错误。if - else 语句中重复的语句,以及测试双精度值的相等是常见的陷阱。

  • 常见错误 1: 忘记必要的括号

如果块中只有一条语句,就可以忽略花括号。但是,当需要用花括号将多条语句括在一起时,忘记花括号是一个常见的程序设计错误。如果通过在没有花括号的 if 语句中添加一条新语句来修改代码,就必须插入花括号。例如:下面图 a 中的代码是错误的。应该用花括号将多个语句放在一起,如图 b 所示:

  • 常见错误 2: 在 if 行出现错误的分号

如下面的图 a 中所示,在 if 行加上了一个分号,这是一个常见错误:

这个错误是很难发现的,因为它既不是编译错误也不是运行错误,而是一个逻辑错误。图 a 中的代码等价于一个带空块的图 b 中的代码。

当使用换行块风格时,经常会出现这个错误。所以使用行尾块风格可帮助防止出现此类错误。

  • 常见错误 3: 对布尔值的冗余测试

为了检测测试条件中的布尔型变量是 true 还是 false, 像图 a 中的代码这样使用相等比较操作符是多余的。

难以发现的错误。使用 = 操作符而不是 == 操作符去比较测试条件中的两项是否相等是一个常见错误。它可能会导致出现下面的错误语句。
 

if (even = true){

    System.out.println("It is even."); 
}

这条语句没有编译错误。它给 even 赋值 true, 这样 even 永远都是 true。

 

  • 常见错误 4: 悬空 else 出现的歧义

下面图 a 中的代码有两个 if 子句和一个 else 子句。那么,哪个 if 子句和这个 else 匹配呢?这里的缩进表明 else 子句匹配第一个 if 子句。但是,else 实际匹配的是第二个 if 子句。这种现象就称为悬空 else 歧义(dangling-else ambiguity)。在同一个块中,else 总是和离它最近的 if 子句匹配。这样,图 a 中的语句就等价于图 b 中的语句。

由于(i>j)为假,所以图 a 和图 b 中的语句不打印任何东西。为强制这个 else 匹配第一个 if 子句,必须添加一对花括号。

int i= 1 , j=  2 , k= 3;
if (i > j){
    if (i > k){
        System.out.println("A");
    }
}else{
    System,out.printlnC'B");
}

这条语句会打印出 B。

 

  • 常见错误 5: 两个浮点数值的相等测试

浮点数具有有限的计算精度;涉及浮点数的计算可能引人取整错误。因此,两个浮点数值的相等测试并不可靠。比如,你期望代码显示 true,但是会让人意外的显示 false。

double x = 1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1;
System.out .println(x == 0. 5);

这里,X 并不是精确等于 0.5, 而是 0.5000000000000001。虽然不能依赖于两个浮点数值的相等测试,但是可以通过测试两个数的差距小于某个阈值,来比较它们是否已经足够接近。

 

  • 常见陷阱 1: 简化布尔变量赋值

通常,编程新手编写将一个条件测试赋给 boolean 变量的代码,会如 a 中代码:

这没有错,但是写成 b 中代码形式会更好。

 

  • 常见陷阱 2: 避免不同情形中的重复代码

编程新手经常会在不同情形中写重复的代码,这些代码应该写在一处的。例如,下面高亮的语句是重复的。

if (inState) {
    tuition = 5000;
    System.out.println(" The tuition is " tuition);
}else {
    tuition = 15000;
    System.out.println("The tuition is tuition);
}

这没有错,但是写成如下代码形式会更好。
 

If (inState) {
    tuition = 5000;
}else {
    tuition = 15000;
}
System.out.println(" The tuirion is " + tuition);

新的代码去掉了重复代码,使得代码更加易于维护,因为如果打印语句需要修改,你只需要修改一处地方。

 

 

3.6 产生随机数

你可以使用 Math.randomO 来获得一个 0.0 到 1.0 之间的随机 double 值,不包括 1.0。

使用 Math 类中的 randomO 方法。调用这个方法会返回一个双精度的随机值 d 且满足 0.0 <= d < 1.0。

 

 

3.7 逻辑操作符

逻辑操作符 !、&&、丨丨和 ^  可以用于产生复合布尔表达式。

有时候,是否执行一条语句是由几个条件的组合来决定的。可以使用逻辑操作符组合这些条件。逻辑操作符( logical operator ) 也称为布尔操作符 ( boolean operator), 是对布尔值进行的运算,它会创建新的布尔值。

 

 

3.8 switch 语句

if 语句是根据单独的一个 true 或 false 条件做出选择的。根据变量 status 的值,会有多种计算的情况。为了全面考虑所有的情况,需要使用嵌套的 if 语句。过多地使用嵌套的 if 语句会使程序很难阅读。Java 提供 switch 语句来有效地处理多重条件的问题。可以使用下述 switch 语句替换嵌套 if 语句:

 

上面的 switch 语句的流程图如下图所示。

这条语句依次检査 status 是否能匹配 0、1、2 或 3。如果匹配,就计算相应的税金;如果不匹配,就显示一条消息。下面是 switch 语句的完整语法:

switch (switch 表达式){
    case 值 1: 语句(组)1;
    break;
    case 值 2: 语句(组)2;
    break;
    case 值 N: 语句(组)Nv
    break;
    default:R认情况下执行的语句(组)
}

switch 语句遵从下述规则:

  • ① switch 表达式必须能计算出一个 char、byte、short,int 或者 String 型值,并且必须总是要用括号括住。
  • ② valuel,...,valueN 必须与 switch 表 达 式 的 值 具 有 相 同 的 数 据 类 型。注 意:valuel, valueN 都是常量表达式,也就是说这里的表达式是不能包含变量的,例如,不允许出现 1+X。
  • ③ 当 switch 表达式的值与 case 语句的值相匹配时,执行从该 case 开始的语句,直到遇到一个 break 语句或到达该 switch 语句的结束。
  • ④ 默认情况(default)是可选的,当没有一个给出的 case 与 switch 表达式匹配时,用来执行该操作。
  • ⑤ 关键字 break 是可选的。break 语句会立即终止 switch 语句。

 

 

3.9 条件表达式

条件表达式基于一个条件计算表达式的值。

有时可能需要给有特定条件限制的变量赋值。例如:下面的语句在 X 大于 0 时给 y 赋1;当 x 小于等于 0时给 y 赋值 - 1。

if (x > 0){
    y=1;
}else {
    y=-1;
}

在这个例子中,还可以选择使用如下的条件表达式,也能达到同样的效果。

y = (x >0) ? 1 : -1;

 

 

操作符的优先级和结合规则

操作符的优先级和结合规则确定了操作符计算的顺序。会依照优先级规则和结合规则进行运算。

优先级规则定义了操作符的先后次序,如表所示,它包含了目前所学的所有操作符。它们从上到下按优先级递减的方式排列。逻辑操作符的优先级比关系操作符的低,而关系操作符的优先级比算术操作符的低。优先级相同的操作符排在同一行。(Java 操作符及其优先级的完整列表参见附录。)

如果优先级相同的操作符相邻,则结合规则( associativity ) 决定它们的执行顺序。除了赋值操作符之外,所有的二元操作符都是左结合的( left - associative)。例如,由于 + 和 - 的所以表达式:

赋值操作符是右结合的(right-associative)。因此,表达式:

假设赋值前 a、b 和 c 都是1, 在计算表达式之后,a 变成 6,b 变 成 6, 而 c 变成 5。注意: 左结合对赋值操作符而言是说不通的。

 

 

3.10 调 试

调试是在程序中找到和修改错误的过程。

因为编译器可以明确指出错误的位置以及出错的原因,所以语法错误是容易发现和纠正的。运行时错误也不难找,因为在程序异常中止时,错误的原因和位置都会显示在控制台上。然而,査找逻辑错误就很富有挑战性。逻辑错误也称为臭虫(bug)。査找和改正错误的过程称为调试(debugging)。调试的一般途径是采用各种方法逐步缩小程序中 bug 所在的范围。可以手工跟踪( hand trace) 程序即通过读程序找错误),也可以插入打印语句,显示变量的值或程序的执行流程。这种方法适用于短小、简单的程序。对于庞大、复杂的程序,最有效的调试方法还是使用调试工具。

JDK 包含了一个命令行调试器jdb, 结合一个类名来调用该命令。Jdb 本身也是一个 Java 程序,运行自身的一个 Java 解释器的拷贝。所有的 Java IDE 工具,比如 Eclipse 和 NetBeans 包含集成的调试器。调试器应用让你可以跟踪一个程序的执行。它们因系统而不同,但是都支持以下有用的特征中的多数。

 

一次执行一条语句:调试器允许你一次执行一条语句,从而可以看到每条语句的效果。

跟踪进入或者一步运行过一个方法:如果一个方法正在被执行,你可以让调试器跟踪进入方法内部,并且一次执行方法里面的一条语句,或者你也可以让调试器一步运行过整个方法。如果你知道方法是可行的,你应该一次运行过整个的方法。比如,通常都会一步运行过系统提供的方法,比如 Systeiout.println。

设置断点:你也可以在一条特定的语句上面设置断点。当遇到一个断点时,你的程序将暂停。你可以设置任意多的断点。当你知道程序错误从什么地方可能开始的时候,断点特别有用。你可以将断点设置在那条语句上,让程序先执行到断点处。

显示变量:调试器让你选择多个变量并且显示它们的值。当你跟踪一个程序的时候,变量的内容持续更新。

显示调用堆栈:调试器让你跟踪所有的方法调用。当你需要看到程序执行流程的宏观图景的时候,这个特征非常有用。

修改变量:一些调试器允许你在调试的过程中修改变量的值。当你希望用不同的示例来测试程序,而又不希望离开调试器的时候,这是非常方便的。

 

 

 

 

 

 

 

附录

 

 

 

 

 

编译运算练习

1.

 

 

2.

 

 

3.

 

 

4.

150道java基础选择题 NULL 博文链接:https://virusfu.iteye.com/blog/921521 立即下载

相关推荐

java基础360条选择题

关于java基础360条选择题 付答案详解。。。。

36.JAVA入门__if语句(考试奖励)

if语句–考试奖励 //数据测试: 正确数据,边界数据,错误数据 //数据测试: 正确数据,边界数据,错误数据 //数据测试: 正确数据,边界数据,错误数据 package class1; //导包 import java.util.Scanner; public class thirty_six { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(S

天天DEBUG 352

告别手动打点!用Cesium为你的大疆无人机快速生成区域巡查航线(保姆级教程)

本文详细介绍了如何利用Cesium平台为大疆无人机快速生成区域巡查航线的保姆级教程。通过自动化航线规划,告别传统手动打点的繁琐操作,实现高效、无死角的区域覆盖。文章涵盖环境搭建、实战案例及高级优化技巧,特别适合无人机操作员和巡检工作者提升工作效率。

weixin_30399821的博客 521

Java 返回语句

/** * 添加用户信息  */ /** * 修改用户信息 */ /** * 根据ID查询某一个人的信息 */ /** * 查询所有用户信息 */ /** * 根据ID删除某一个用户的信息 */ public class ReturnDemo { public static void add(String email, String username, String conf...

Dexter的博客 2589

新手避坑指南:用Silvaco Atlas搞定GaN HEMT电热仿真的完整流程(附代码解读)

本文详细介绍了使用Silvaco Atlas进行GaN HEMT电热特性仿真的完整流程,特别针对新手常见问题提供避坑指南。从软件环境配置、结构定义、网格划分到物理模型设置,逐步解析关键步骤,并附有代码解读和调试技巧,帮助读者快速掌握GaN器件仿真的核心技术。

weixin_29215815的博客 597

mcgs数据导出到U盘

mcgs触摸屏在工业中应用还是很多的,尤其他的脚本功能策略功能等将开放性放到了最大,让用户可以根据实际需求进行自由创作,正因为这样,对一些初学者就不是很友好,初学者想要简单操作就能实现功能,但是mcgs不可能两者兼备,在做工业设备,一些数据的采集保存就比较常见,但是mcgs没有相关按钮能够直接实现将数据导出到U盘的功能。这里我给大家讲解关于mcgs将报警历史记录、日志记录、历史数据记录导出到U盘的方法。

qq_24866535的博客 6236

java aba问题_ABA问题怎么解:AtomicStampedReference和AtomicMarkableReference

本博客系列是学习并发编程过程中的记录总结。由于文章比较多,写的时间也比较散,所以我整理了个目录贴(传送门),方便查阅。并发编程的基石——CAS机制这篇文章中介绍到CAS机制有一个缺点就是ABA问题:CAS在操作的时候会检查变量的值是否被更改过,如果没有则更新值,但是带来一个问题是:如果值最开始的值是A,接着变成B,最后又变成了A。经过检查这个值确实没有修改过,因此CAS机制会更新这个值。但是实际上...

weixin_39645249的博客 199

华为无线AP+AC(ensp)

VLAN 100--192.168.100.0/24为AP的管理IP地址VLAN10--192.168.10.0/24为无线用户获取的IP地址在DHCP Server(LSW3)上查看地址分配情况。

abcdlalal的博客 1万+

一个java类包含那些基本元素_Java100道基础面试题

1.什么是B/S架构?什么是C/S架构B/S(Browser/Server),浏览器/服务器程序C/S(Client/Server),客户端/服务端,桌面应用程序2.你所知道网络协议有那些?HTTP:超文本传输协议FTP:文件传输协议SMPT:简单邮件协议TELNET:远程终端协议POP3:邮件读取协议3.Java都有那些开发平台?JAVA SE:主要用在客户端开发JAVA EE:主要用在web应...

weixin_31411427的博客 3014

JVM高频面试基本问题与知识点整理

JVM高频面试基本问题与知识点整理

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 87万+

中科大大数据学院2023年保研夏令营机试题目【无offer,直接放题了~】(2023.07.22下午14:35-17:35考试)

给定一串数字,最后一个数是0表示结尾,表示数字串的终止,为无效数字。将该数字串存储在双向链表中,判断是否为回文串,若是,则输出Yes,否则输出No.

m0_51339444的博客 1922

Java 编程基础:40 道选择题带你掌握核心概念 大学期末考试题

(在Java中,使用。

laterstage的博客 9145

前端技能树,面试复习第 54 天—— 手写代码:情景题

前端修罗场提供全网最专业的前端优质文章与社区服务,为应届生,初中级前端工程师提供全面、优质的面试服务、技能提升、职场解惑服务!内容包含:前端面试辅导,前端面试题,前端交流,前端答疑,前端基础知识,前端知识体系,技能树搭建,Javascript,CSS,CSS3,HTML,React,Vue,小程序,前端简历,职业交流,远程工作,英文交流,英文提升,外企,互联网,国企,大厂,牛客面试题,掘金面试题,面经,优质前端文章分享...

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 986

【Java基础】03选择结构

不同点:switch选择结构,只能处理等值条件判断的情况;多重if选择结构,适合某个变量处于某个连续区间时的情况。字符串为null 时,表示没有在堆中开辟空间。例:用户输入性别sex 判断是否是“男”相同点:都是用来处理多分支条件的结构。if选择结构,包括以下形式。

m0_66584716的博客 412

把 LLM 编排能力塞进 ABAP 系统里,ZLLM 仓库的工程价值与 SAP 落地场景

ZLLM项目将LLM应用开发中的常见工程问题引入ABAP原生环境,为SAP系统提供AI工作流构建能力。它类似ABAP版的LangChain,支持Chain组合、Prompt模板、状态传递等核心功能,强调纯ABAP实现、延迟执行以及与ABAP数据结构的深度集成。项目包含工厂类、LLM客户端、负载均衡器等模块,特别设计了能处理ABAP内表和结构的模板引擎,使业务数据可直接用于Prompt生成。通过Step和Flow机制支持复杂业务过程编排,并采用延迟执行和并行处理优化批量任务性能。该项目为ABAP开发者提供了在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 61

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Java基础-03(选择结构)

public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("输入张浩的Java成绩: "); //提示输入Java成绩 int score = input.nextInt(); //从控制台获取张浩的Java成...

weixin_43612419的博客 878

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java基础If选择03

2.天气状况,温度,性别都需要从键盘输入。天气状况1.表示温度,0表示晴天。当性别为男带一把大黑伞。当性别为女带一把小花伞。性别1表示男,0表示女。当性别为女擦防晒霜。温度直接使用数字即可。...

qq_46096136的博客 227

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java基础23-JavaWeb(03)【CSS基础选择器】

02 CSS基础选择器 1. CSS选择器作用 如上图所以,要把里面的小黄人分为2组,最快的方法怎办? 很多, 比如 一只眼睛的一组,剩下的一组 选择器的作用 ​ 找到特定的HTML页面元素 **CSS选择器干啥的? 选择标签用的, 把我们想要的标签选择出来 ** 必须记住的 css 就是 分两件事, 选对人, 做对事。 h3 { color: red; } 这段代码就是2件事, 把 h3选出来, 然后 把它变成了 红色。 以后我们都这么干。 选择器分为基础选择器和 复合选择器,我们这

小管博客空间站 193

JAVA基础03——Scanner、顺序、选择、循环、beark、continues

1、用户交互Scanner java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的 输入。 Scanner s = new Scanner(System.in); //创建一个Scanner对象 接收字符串 并通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符 串,在读取前我们一般需要 使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。 Scanner scanner

weixin_44153521的博客 439

java基础03 进制转换 选择、循环结构

一、进制 进制 符号 例子 二进制 0b(B) 0b10 八进制 0 010 十进制 无符号 12 十六进制 0x(X) 0x0a 二进制 0 1 八进制 0~7 十六进制是 0~9 a~f ,a表示10,b表示11,依次类推 进制转换 1.其他进制转为十进制 基数 *系数的权次幂之和 基数即每个数字(不算符号) 系数即该数是几进制即几 权次幂 即从右往左数,从0开始数起 例子 0b1011 0b是二进制,所以系数为2, 从右往左开始算, 最终得出11. 其他进制转十进制同

Xs943的博客 653

JAVA基础-day03-选择语句和循环语句

day03-选择语句和循环语句 3.1 顺序结构(重点) 如果代码里没有流程控制,程序是按照书写的格式从上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,中间没有判断和跳转,直到程序的结束。 public class SequenceDemo{ public static void main(String[] args) { System.out.println("A"); System.out.println("B"); System.out.println("C"); Sys

JIANG_A的博客 315

java基础03(选择结构)

一、基本if选择结构:可以处理单分支的if选择结构 if(条件){ //条件结果为真(true)时执行的一句或多句代码 } 二、if-else选择结构:可以处理两个分支的if选择结构 if(条件){ //条件结果为真时执行的一句或多句代码 }else{ //条件结果为假时执行的一句或多句代码 } 三、多重if选择结构:可以处理多个分支的if选择结构 if(条件1){ //条件1结果为真时执行的一句或多句代码 }else if(条件2){ //条件2结果为真时执行的一句或多句代码 }else{ //以上结果均

Zzy2372的博客 2175

JAVA基础知识03【switch选择结构】

switch选择结构及常见的错误 什么是switch选择: 注意 switch后面小括号中表达式的值必须是整型或字符型,jdk7及以后也可以是字符串类型 default块顺序可以变动,但要注意其执行顺序。通常,default块放在末尾,也可以省略 //控制台输入 Scanner input=new Scanner(System.in); Syste...

HABC666的博客 512

Java 基础-03:选择排序 Vs 冒泡排序

目录 1、选择排序 2、优化方式 3、代码实现 4、选择排序与冒泡排序比较 1、选择排序 (1)将数组分为两个子集,排序的和未排序的,每一轮从未排序的子集中选出最小元素,放入排序子集 (2)重复以上步骤,直到整个数组有序 2、优化方式 (1)为减少交换次数,每一轮可以先找出最小的索引,在每轮最后再交换元素 3、代码实现 public static void main(String[] args) { int[] a = {5,3,7,2,1,9,8,4}...

SUMMERENT的博客 637

Java基础(03)——Java语法结构(顺序与选择结构)

Java中的语法结构Java中的语法结构1、顺序结构语句2、选择结构语句插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 Java中的语法结构 Java中的基本顺序语句有几种呢,下...

清风不渡 964

Java基础 -- 第03章:选择结构[云图智联]

免费学习视频欢迎关注云图智联:https://e.yuntuzhilian.com/ 1. if选择结构 1.1 基本if选择结构 1.1.1   生活中,我们经常需要先作出判断再来决定是否作某件事情。比如:如果我的存款超过1万元我就出去旅游、如果今天的任务完成了晚上就不需要加班等等。在程序中,对于这种“需要先判断条件,条件满足时才能执行”的需求,就要用到if选择结构来解决。 1.1.2   基本语法: if(布尔表达式){ //表达式结果为true时执行的代码块 }else{

277
上一篇: JAVA基础02基本程序设计
下一篇: JAVA基础04数学函数、 字符和字符串
Fallen一down
博客等级 码龄7年 9粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值