Redian新闻
>
新手对switch语句的迷惑
avatar
d*o
2
下面这段代码的结果为什么不是
See no evil.
而是
See no evil.
Speak no evil.
Hear no evil.
public class Advice {
public final static int LITTLE_ADVICE = 0;
public final static int MORE_ADVICE = 1;
public final static int LOTS_OF_ADVICE = 2;
public static void main(String[] args) {
dispenseAdvice(LOTS_OF_ADVICE);
}
public static void dispenseAdvice(int howMuchAdvice) {
switch(howMuchAdvice) { // (1)
case 2:
System.ou
avatar
c*p
3
对预防霉菌很管用,喜欢
avatar
g*g
4
If you don't break in each case, it will follow through.

【在 d********o 的大作中提到】
: 下面这段代码的结果为什么不是
: See no evil.
: 而是
: See no evil.
: Speak no evil.
: Hear no evil.
: public class Advice {
: public final static int LITTLE_ADVICE = 0;
: public final static int MORE_ADVICE = 1;
: public final static int LOTS_OF_ADVICE = 2;

avatar
Z*X
5
谢谢,我的桔子树生病了,叶子背面先有一层白色的膜,然后卷起来,心痛ing, 不知
Neem oil 能否治我的桔子树。

【在 c***p 的大作中提到】
: 对预防霉菌很管用,喜欢
avatar
a*e
6
在这方面C#和Perl设计得更合理。

【在 g*****g 的大作中提到】
: If you don't break in each case, it will follow through.
avatar
c*p
7
我觉着这个的预防功能大于治疗功能,如果是霉菌,基本不可能全部杀死。我都是把感
染的叶子拔掉,然后喷neem oil防止健康的叶子感染。
你的这个描述我不确定是不是霉菌,你有空照个照片贴上来,让果树大仙们帮忙确诊一下

【在 Z**X 的大作中提到】
: 谢谢,我的桔子树生病了,叶子背面先有一层白色的膜,然后卷起来,心痛ing, 不知
: Neem oil 能否治我的桔子树。

avatar
d*o
8
有点不明白,LOTS_OF_ADVICE的值自始至终是2, 为什么语句(3)和语句(4)也执行
了。什么是fallow through?follow through 是不是将所有的Case语句执行一遍!
case 1: System.out.println("Speak no evil.");也执行了, 难道说LOTS_OF_ADVICE
变量值会自动递减!

【在 g*****g 的大作中提到】
: If you don't break in each case, it will follow through.
avatar
Z*X
9
谢谢小杯子。我也是把感染的叶子摘了,以为没事了,今早发现新长的叶子又有了,才
开始着急。等我会上传照片再说。

一下

【在 c***p 的大作中提到】
: 我觉着这个的预防功能大于治疗功能,如果是霉菌,基本不可能全部杀死。我都是把感
: 染的叶子拔掉,然后喷neem oil防止健康的叶子感染。
: 你的这个描述我不确定是不是霉菌,你有空照个照片贴上来,让果树大仙们帮忙确诊一下

avatar
w*g
10
他发现第一个Match之后,以后就不再比较,直接执行了,除非碰到Break;
avatar
g*g
11
If you ever learn assembly, you'll understand why this is natural.
"case blahblah" is a just a label. You can have as many labels as
you like but the flow won't change until you do jump ("break").
C used this design and C++, Java followed.

ADVICE

【在 d********o 的大作中提到】
: 有点不明白,LOTS_OF_ADVICE的值自始至终是2, 为什么语句(3)和语句(4)也执行
: 了。什么是fallow through?follow through 是不是将所有的Case语句执行一遍!
: case 1: System.out.println("Speak no evil.");也执行了, 难道说LOTS_OF_ADVICE
: 变量值会自动递减!

avatar
d*o
12
Thank you so much!

【在 w*****g 的大作中提到】
: 他发现第一个Match之后,以后就不再比较,直接执行了,除非碰到Break;
avatar
d*o
13
终于明白了,谢谢!
我以前用foxpro, 一看到switch,就想到do case语句,形成偷懒的习惯了!

【在 g*****g 的大作中提到】
: If you ever learn assembly, you'll understand why this is natural.
: "case blahblah" is a just a label. You can have as many labels as
: you like but the flow won't change until you do jump ("break").
: C used this design and C++, Java followed.
:
: ADVICE

avatar
l*G
14
matlab does not need breaks, yet many need, so it is language-dependent, you should be very
carefull
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。