首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当我输入一个空字符串('nothing here')时,为什么它忽略了我的while条件?

当你输入一个空字符串('nothing here')时,它忽略了你的while条件是因为在大多数编程语言中,空字符串被视为一个"假"值(false),而不是一个"真"值(true)。在while循环中,当条件为"真"时,循环会继续执行,而当条件为"假"时,循环会终止。

因此,当你的while条件是空字符串时,它被视为"假",循环条件不满足,所以循环体内的代码不会执行,直接跳过循环。

这种行为是由编程语言的逻辑判断规则决定的,而不是云计算或其他相关技术的特性。无论是前端开发、后端开发还是其他领域的开发工作,都需要理解编程语言的基本逻辑和语法规则,以正确地编写代码。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

java input.nextline_关于java:Scanner#nextLine()留下一个剩余换行符

大家好,又见面是你们朋友全栈君。 一直遇到Scanner#nextLine问题。 根据我理解,nextLine()应该返回当前输入其余部分,然后继续进行下一行。...如果将其保留为input.nextLine(),则循环下一次迭代将接受月份换行符。 这是为什么?...由于下一个令牌不是有效整数,因此将引发异常,并输入catch块,在其中调用nextLine()。使用直到第一个所有字符,并返回之前文本,即空字符串。...怀疑当您输入两位数年份,以及您使用next()读取,它将仅读取下一个字符串。...并且即使您输入2位数字年份,它也将由nextLine()新行或值读取2,即使输入了无效值,此后任何内容(包括新行或回车符)都将保留。

1.2K10

Kotlin Nothing 详解

这些条件加起来,结果就是:Nothing 这个类既没有、也不会有任何实例对象。...基于这样前提,当我们写出这个函数声明时候: fun nothing(): Nothing { } 我们不可能找到一个合适值来返回。你必须返回一个值,但却永远找不到合适返回值。悖论。...} 这个写法并没有返回任何结果,而是抛异常,所以是合法。 可能有的人会觉得有问题:抛异常就可以为所欲为吗?抛异常就可以忽略返回值了吗?...不过,Kotlin 又进了一步,提供一个额外选项:你还可以把改成 Nothing: /** 当任何变量为时候,请统一调用这个函数来抛异常 */ fun throwOnNameNull() :...throw 返回值是 Nothing,我们就可以把写在等号右边,在语法层面假装成一个值来使用,但其实目的是在例外情况抛异常。

29830
  • shell 脚本中关于用户输入参数处理

    shell 脚本中关于用户输入参数处理 bash shell 脚本提供3种从 用户处 获取数据方法: 命令行参数(添加在命令后数据) 命令行选项 直接从键盘读取输入 1 命令行参数 像 shell.../temp.sh numbe bash shell 还提供几个特殊变量: $# 脚本运行时携带 命令行参数个数; $* 将命令行上提供 所有参数 当做 一个单词 保存; $@ 将命令行上提供...如果 variable_name 值为, 返回 value....比如在脚本运行时问一个问题, 等待运行脚本的人来回答, bash shell 为此提供 read 命令. 3.1 read 命令 read variable_name 从标准输入(键盘) 或 另一个文件描述符中...3.2 从文件中读取 read 命令可以读取文件中保存数据. 每次调用 read 命令, 都会读取一行文本. 当文件中没有内容, read 会退出并返回非 0 退出状态码.

    2.4K20

    从map函数引发讨论

    : Uncaught TypeError: Cannot read property 'map' of undefined(…) lodash提供map函数则有些调皮,针对这种所谓“异常”情况,它不言不语默不作声视而不见地忽略...意味着,意味着NothingNothing并非异常,并非无意义空缺,代表其实是一种特殊状态。...如下图所示,针对一个什么都没有装(No Value)空盒子(Nothing)进行+3运算,结果仍然是Nothing: ? △ 图片来自adit.io 说服你了吗?...若将undefined数组视为异常情况,当我们连贯着执行map、filter运算,一旦抛出异常,流畅调用方式就被该死错误打断了!...回到ES6语法下,我们需要规避这种情况出现,就需要在执行map前判断数组对象: if (array) { array.map( i => i + 1) } 一个条件判断搅合正常业务逻辑,

    1.4K90

    为什么喜欢 JavaScript 可选链

    让我们看看可选链是如何通过在深度访问可能缺少属性删除样板条件和变量来简化代码。 1. 问题 由于 JavaScript 动态特性,一个对象可以具有非常不同对象嵌套结构。...条件用于验证是否定义 director 属性。...这就是为什么喜欢可选链原因。 2.1 数组项 可选链能还可以做更多事。你可以在同一表达式中自由使用多个可选链运算符。甚至可以用它安全地访问数组项! 下一个任务编写一个返回电影主角姓名函数。...rightHandSide 上遇到值,就会停止对右侧访问器评估。这称为短路。 看一个例子: const nothing = null; let index = 0; nothing?....为什么喜欢喜欢可选链运算符,因为允许轻松地从嵌套对象中访问属性。它可以防止编写针对访问者链中每个属性访问器上值进行验证样板代码。

    71640

    python开发_python关键字

    Flase 布尔类型值,标示假,和True相反 class 定义类关键字 finally 在异常处理时候添加,有,程序始终要执行finally里面的程序代码块,如: class MyException...我们也可选从函数 返回一个值 None None是一个特殊常量。None和False不同。None不是0。None不是空字符串。None和任何其他数据类型比较永远返回False。...while语句是所谓 循环 语句一个例子。while语句有一个可选else从句。 and 逻辑判断和C&&一样 del del用于list列表操作,删除一个或者连续几个元素。...if if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理另外一块语句(称为 else-块 )。...print('path:',path) pass pass意思是什么都不要做,作用是为了弥补语法和定义上冲突,理解他好处体现在代码编写过程之中,比如你可以先写好软件整个框架,然后再填好框架内具体函数和

    91530

    JavaScript 实现 JSON 解析器

    ,例如“字符串”和”空格”,当我们实现它们,一切都会起作用?。...让我们处理两种最常见错误情况: •意外标记•字符串意外结束 意外标记 字符串意外结束 在所有的while循环中,比如parseObject中while循环: function fakeParseJSON...while(str[i] !== '}') { 我们需要确保访问字符不会超过字符串长度。在这个例子中,这发生在字符串意外结束,而我们仍然在等待一个结束字符“}”。...设计语法是最难一步。 一旦掌握语法,就可以开始基于语法来实现解析器。 错误处理很重要,更重要是拥有有意义错误消息,以便用户知道如何解决。...如果你喜欢你刚刚读到,请在 Tweet 转发[10]并评论,我会写更多相关文章; 如果你不同意或对这篇文章有意见,也请在 Tweet 转发[11]并评论可以采纳你建议并改进

    3.5K30

    Google Python风格规范(上)

    先用于帮助内核找到Python解释器, 但是在导入模块, 将会被忽略. 因此只有被直接执行文件中才有必要加入#!。 8 注释 确保对模块, 函数, 方法和行内注释使用正确风格。...文档字符串 Python有一种独一无二注释方式:使用文档字符串。 文档字符串是包, 模块, 类或函数里一个语句。 这些字符串可以通过对象doc成员被自动提取,并且被pydoc所用。...一个文档字符串应该这样组织:首先是一行以句号、问号或惊叹号结尾概述(或者该文档字符串单纯只有一行)、 接着是一个空行, 接着是文档字符串剩下部分,应该与文档字符串第一行一个引号对齐。...函数和方法 下文所指函数,包括函数, 方法, 以及生成器。 一个函数必须要有文档字符串, 除非满足以下条件: 文档字符串应该包含函数做什么,以及输入和输出详细描述。...通常, 不应该描述”怎么做”,除非是一些复杂算法。 文档字符串应该提供足够信息, 当别人编写代码调用该函数,他不需要看一行代码,只要看文档字符串就可以

    69220

    Python五个隐藏特性,你可能从未听说过

    是的,你没看错,在Python中...是一个有效构造。...是称为省略号单例对象。如果你把输入到Python解释器中,你可以看到: >>> ......为什么这很有用?恕我直言,使代码更优雅一些。...循环 Python有两个不同循环,for和while。两者都可能是“坏”。也就是说,如果满足某个条件,就可以跳出循环。...现在,假设我们要找一个特定条件。如果满足该条件,则将结果保存在一个名为found标志中。然后,如果我们没有找到,我们打印一条消息。...由于“lala”不存在,代码将引发一个KeyError异常。当我在IPython中运行这段代码,得到了预期结果。 如果程序没有引发异常呢?

    46930

    用 shell 脚本做命令行工具扩展

    就在一愁莫展时候,安全组同事提供一个基于企业网盘命令行工具,可以通过命令行方式上传下载文件,在 mac 上还有桌面端可以用。...可以看到由于目录没有 FILESIZE 字段,导致输出后只有三项,这样一来当我们继续提出时候,就会少了一列,和上面文件格式不统一,有什么办法可以为字段补零吗?...由于这里使用是默认空格和 TAB 键分隔,所以不需要特别指定 awk 分隔符,从这里也可以看出来上面对目录大小为处理是必要,不然列会直接被忽略,后面的字段就对不上了。...在测试过程中, 还发现一个脚本 bug,就是当目录中包含两个同名文件 (一个是普通文件,一个是目录),则在 bst_tool ls name ,将优先输出目录内容,和目录是否为、目录和文件创建先后顺序都无关...让我们来分析一下为什么是这个样子: 当 bsttool_query_path 以 /tmp 为参数进行检查,发现它是一个非空目录;  继续检查下面是不是有名叫 /tmp/data 文件,之前我们说过

    1.3K30

    Python快速学习第十天

    当程序从标准输入读取数据,你可以通过输入或者使用管道把和其他程序标准输出链接起来提供文本(管道是标准UNIX概念)。   要打印文本保存在sys.stdout内。...首先指定要读取字符数"4",然后(通过不提供要读取字符数方式)读取了剩下文件。注意,在调用open可以省略模式,因为'r'是默认。...= f.read(1) f.close() 这个程序可以使用是因为当到达文件末尾,read方法返回一个字符串,但在那之前返回字符串会包含一个字符(这样布尔值是真)。...代码清单11-9和代码清单11-10展示在读取这样文件,在字符串和行上进行迭代是多么容易。注意,将文件内容读入一个字符串或者是读入列表在其他时候也很有用。...本例恰好可以使用for循环可以使用一个名为懒惰行迭代方法:说它懒惰是因为只是读取实际需要文件部分。 第十章内已经介绍过fileinput,代码清单11-11演示用法。

    1.2K60

    leecode刷题(16)-- 字符串转换整数

    当我们寻找到一个非空字符为正或者负号,则将该符号与之后面尽可能多连续数字组合起来,作为该整数正负号;假如第一个非空字符是数字,则直接将其与之后连续数字字符组合起来,形成整数。...该字符串除了有效整数部分之后也可能会存在多余字符,这些字符可以被忽略,它们对于函数不应该造成影响。...注意:假如该字符串一个非空格字符不是一个有效整数字符、字符串字符串仅包含空白字符,则你函数不需要进行转换。 在任何情况下,若函数不能进行有效转换,请返回 0。...示例 3: 输入: "4193 with words" 输出: 4193 解释: 转换截止于数字 '3' ,因为一个字符不为数字。...当我们执行了这些判断后,只需要定义一个初始值 base = 0,定义数组下标 i,从前往后遍历,将遍历到符合条件字符依次排序,便能将字符串转换为整数了。

    52930

    日拱一卒,CS61A lab07,伯克利教你数据结构

    链表(Link.empty) Link对象包含链表一个值,以及一个指向剩余链表引用。...Motivation: Why linked lists 你已经熟悉Python原生list,你可能好奇,为什么我们要教你另外一个list实现方式。这是有历史和实际原因。...如果运行时报错,输入Error。如果程序什么也不会展示,输入Nothing。...***" 测试命令:python3 ok -q link_to_list 答案 首先非递归版本很好写,我们只需要使用while循环来遍历链表,每一次移动将当前link指向rest即可。...一个指针用来遍历链表,一个指针指向删除元素之后保留链表最末尾节点。这样当我们遍历到了新不被删除节点,就可以直接将它拼接在末尾

    96430

    网页调试之debugger原理与绕过

    当我们调试JS时候,时常会遇见无限debugger。无限debugger原理是什么呢?它在何时触发?如何绕过?...eval配合debugger eval() 函数计算 JavaScript 字符串,并把作为脚本代码来执行。 如果参数是一个表达式,eval() 函数将执行表达式。...个人并不推荐新手使用替换法中方法 替换法 JS注入 重写(Hook) 掠过法 Never pause here 条件断点 JS注入 实现js注入方式有很多,例如chrome Devtoolsoverrides...若有兴趣自行搜索其使用方式 Never pause here ? 找到debugger前面的行号,鼠标右键点击该行号,点击Never pause here。便会跳过此断点 条件断点 ? ?...将对应函数滞即可,例如遇见如下debugger function a() { debugger; eval("debugger"); } 直接在控制台输入如下内容即可。 ?

    8K70

    Kotlin版图解Functor、Applicative与Monad

    同时翻译中英文两个版本,英文版在这里。 与从 Swift 版翻译而来 Kotlin 版不同是,本文是直接从 Haskell 版原文翻译而来。 这是一个简单值: ?...另外 Kotlin 有自己表达可选值方式,并非使用 Maybe 类型这种方式,参见安全。 Functor 当一个值被包装在上下文中,你无法将一个普通函数应用给它: ?...现在告诉我们 Maybe 数据类型存在意义。...“大人物可以使用具有任意数量参数函数,”说。 “装备 ($) 与 (*) 之后,可以接受具有任意个数未包装值参数任意函数。 然后传给它所有已包装值,而我会得到一个已包装值出来!...所以,亲爱朋友(觉得我们现在是朋友),想我们都同意 monad 是一个简单且高明主意(译注:原文是 SMART IDEA(tm))。

    1.2K20
    领券