标题:菜鸟学习笔记(2)if。。。else
取消只看楼主
ccnjava
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2004-7-13
 问题点数:0 回复次数:2 
菜鸟学习笔记(2)if。。。else

菜鸟学习笔记(2)if。。。else 流程控制语句 概念: 流程控制语句,流程(flow)就是在程序设计的领域中指的是程序进行的顺序。 正是有了流程控制语句,程序内容才变得丰富多彩(好像没有这么形容的么。。) 不然的话,所有程序只能按照输入时候的默认顺序一部一部执行。那就不叫程序 了,而变成计算calculation了。枯燥无味。而且流程控制语句还可以让某一程序 重复执行N遍等功能。 流程控制语句一种是判断式结构。给定一个条件,如果条件为真,语句执行。 而条件为假,则不执行。给我感觉和三目运算有些相近。另一个是循环体结构。 一直反复执行某一段语句,直到某些条件达成,自动退出循环。

今天只学习if。。。else。。。 if...else...概念: 按照中英文翻译,我门理解的感念就是如果。。。然后。。。否则。。。 公式如下: if(逻辑表达式语句) 语句1; else 语句2; 首先定义表达式,此句应为一个判断句,此表达式可以式算术表达式,逻辑表达式 或者关系表达式所组成。但是要注意结果必须是一个能得到boolean的true或false 的值。 根据表达式的值判断出真假,如果为ture,那么执行表达式后面的语句1。 如果表达式的值为fasle。那么跳过表达式,而执行else。

例1: 举一个最简单的例子: int a=80; if(a>=60); System.out.println("Pass!"); else System.out.println("Lose!"); 例中定义一个int变量a,值为80,if语句定义如果a>=60则输出if后面的语句,本 变量80,应输出pass。但假设a为59,则if条件为假,输出else。大概就是这样。 java小贴士:上面那个程序用三目运算一样可以表达 int a=XX; System.out.println(a>60?"Pass!":"Lose!"); 呵呵,大概就是这样了,好像三目和if。。else可以通用?感觉好像三目是if。。else 的简化版。。。?

Java小贴士:逻辑表达式语句必须返回boolean值。 Java小贴士:语句后面必须要有分号,但if和else并不要分号,并不是所有一切都 要用;结尾 Java小贴士:if是必须有的,但是else并不一定要有。比如上面那个如果这样写 int a=80; if(a>=60); System.out.println("Pass!"); 程序也无语法错误,当a>=60还是会输出Pass,但是当条件为假,则什么也不 输出,在有else时候会执行else里面的语句。这是有没有else区别。但若没有if则就是 语法错误了。

例2: 天气好。出去打球。不好在家睡觉。

boolean weather=true; if(weather=true){ System.out.println("HOHO!"); System.out.println("I and good friends play football."); System.out.println("We will have a good time");} else{ System.out.println("OH,My god!"); //my god..?好像夸张了点。呵呵 System.out.println("I am going to bed soon!");} } } java小贴事:if和else可以设置多个输出语句,但是要输出多于1行以上的语句,要用 {}括号把他们括起来。这种要if执行多个语句叫做复合语句。不加大括号编译会发生错误。。。

关于if。。else欠套。 一个程序光有一个if。。。else是不行的。 据个例子,如果有一个程序,按照学生的分数来评定优良中差。那么一个if。。else就 解决不了问题了。这时候我门要用到欠套。 所谓欠套就是在if。。。else中在加入多个if。。。else。实现多个判断语句, 多中情况的选择。

举一个简单的例子,学生成绩评定。学成成绩在85以上的为优,在70以上为良,在60或者 60以上为及格,中。60以下为不及格差。 //记得偶小学时候就经常是不及格边缘。(旁人:这你也好意思说。。。)(小菜鸟:咳, 我这不是看大家看了这么多太劳累,让大家笑一笑嘛。。开玩笑啦~)

例3: int grade=XX; if(grade>100 |grade<0) System.out.println("您输入的成绩不再取值范围中"); else if(grade>80) //请注意欠套用法。文字有些说不清楚。。。 System.out.println("优秀"); else if(grade>=60) System.out.println("及格"); else if(grade<60) System.out.println("不及格");

java小贴士:有的时候要按照实际写程序。比如上面那个。有的时候程序并没有要求 写大于100或者小于0。但实际情况是这样,应该写的。这样在grade>100 or grade<0时候显示“您输入的成绩不再取值范围中”。 java小贴士:在于或非上面,java用的是&|^符号如果习惯写SQL的人很可能习惯写成 or and not这在java中是错误的。 Java小贴士:一般来说算个成绩或者公司什么的用int位数足够了,如果用int够的话不要 用long之类的。以免减慢编译解析速度。

java小贴士:欠套还有其他格式,比如一下这种,用大括号。 int grade=XX; if(grade>=80){ System.out.println("优秀");} else{ if(grade>=60){ System.out.println("及格");} else{ if(grade<60){ System.out.println("不及格");} else if(grade>100 | grade<0){ System.out.println("您输入的成绩不再取值范围中");} 这种方法不提倡,小菜鸟感觉括号太多,影响程序的可读性。避免使用。

java小贴士:if和else要配对。当else遇到多个if时候,else要和最近的if配对。 举个例子就明白了。 例4:int x,y; x=X; y=X; if(x>3) if(y>3) System.out.println("A"); else System.out.println("B");

这是一个if。。else结构 那么题目中有两个else,这时按照上面我门说的java小贴士,就能分清楚else应该属于和他 最近的那个if,也就是说这个else是属于if(y>3)的。而且第2个if是欠套在第一个之中的。 明白这点后面就好办了。首先判断if(X>3)是否是true,如果true,进入下面的if。。else 如果是false,跳过下面的if。。else。。而程序又没有和第一个if配对的else,所以程序 不执行任何语句。 如果if(X>3)为true,那么继续判断if(y>3),如果仍为真,那么执行A。如果if(y>3)为 假执行B。

实际上我们在刚才的例子中可以加入大括号,如下。。。但好像还没有上面清楚。。。晕了。。 我写这个做啥。。。?汗。。 例5: x=X; y=X; if(x>3){ if(y>3){ System.out.println("A");} else{ System.out.println("B");} }

Java小贴士:又个题跟例4差不多,不过答案却不一样,那么也就要注意括号多的问题了 注意括号的位置,来判断和if配套的else。 例6: char ch1,ch2; ch1='a'; ch2='c'; if(ch1=='a') {if(ch2=='b') System.out.println("A"); } else System.out.println("B"); 注意一下这里的else是和第一个if配对的。因为第2个if已经加了大括号。 如果if(ch1=='a')那么看if(ch2=='b')。第二个if欠套在第一个if里面。 这题和例4有点相反。。呵呵。如果if(ch2=='b')则输出a。 如果if(ch1=='b')则不用看if(ch2=='b')直接直接和第一个if配对的else。输出b 如果都fasle则什么也不输出。 大概就是这些意思。。

声明:本贴仍然为菜鸟贴,水平只是菜鸟水平,如有错误,还请海涵。 虽然。。。是菜鸟贴。。但也费了小菜鸟不少心血。。。2600+字。。就看这字。。。就得打5个小时。。 好在我打字快,小学4年级买电脑那是还是dos,一年以后就能盲打。。(好像吹上了。。stop) 而且里面还有好多偶的废话。。。。 呵呵,不过这跟3位版主帮助我这个笨蛋菜鸟比起来就真的就没什么了。尤其是看偶那让人吐血的问题。。。 还要回答。。。呵呵,三位版主大人最近一定要多吃些补血的。。营养品啊。。。

另注:在这次写日记中遇到了不少问题,类痴狂人版主所提醒我的问题。。基本全碰上了。。呵呵。。 这么写真容易弄好多错,中英文符号弄错是小,莫名其妙错是大。。?(就是我找不到的错误。。。因为我 查错的本事是一等一的差。。。哈哈,比如括号不配对等等低级错误。。)不过现在的程序都小,这 么写笔记暂时凑活,以后大一点复杂一点。。就算了。。。呵呵 那为什么我还要写日记呢(旁人:你人太死性)。。呵呵也许吧。不管怎么说我还是一个菜蛋。 (菜蛋就是比菜鸟还菜的那种,人家好歹是只鸟,我却还是蛋。)又因为今天看到J湖散人版主说 “不要以为一些基础的东西似乎都懂了,其实里面还有很大的学问!”。所以小菜鸟也很想打好基础。 不过这篇笔记也只能是菜鸟级别的。偶也只有这个水平。。。高手门。。。看过一笑而过吧呵呵。 不过。。。呵呵。。偶到觉得要是没学过java,刚想学java人看看挺好。。(旁人:自己吹上了。。) 呵呵。我记得有位高人曾经对我说过“我国是世界人口大国,吹牛是中华民族的传统美德。” (旁人:。。这明明是你前几天和我说的。。这种话我还是第一次听说。。。。。。)

搜索更多相关主题的帖子: else 笔记 流程 语句 
2004-08-11 20:09
ccnjava
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2004-7-13
得分:0 
再接再厉
小菜鸟再接再厉。。。呵呵

特此感谢三位版主对小菜鸟长期以来的帮助 他们是 jellen(类痴狂人 ) tempnetbar(J湖散人 )和Anstey (排名不分先后) 呵呵,这些日子让小菜鸟受益非浅。 忠心的谢谢您们!
2004-08-11 21:19
ccnjava
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2004-7-13
得分:0 
补充菜鸟笔记(4)while欠套循环.有一点程序执行过程地方不明白.

比如这道题: public class L2{ public static void main(String args[]){ int i=1,j=1; while(i<3){ while(j<3){ System.out.println("A"); j++;} System.out.println("B"); i++; } } }

这是一个while欠套循环.那么程序执行的过程是怎么样子的? 是否是先执行欠套里面的while,执行完第一次欠套里面的while后. 继续执行欠套里面的第2次.只到第3次为false退出循环.然后在执行 欠套完面的循环2次.最后退出. 不知道我理解的过程对不对..? 执行后答案是 A A B B

//不知道说清楚没有...是这样的过程么...

呵呵,在这同时菜鸟笔记(5)完成了耶,不过最后一题..还是欠套的问题 不知道思路对不对..小菜鸟感觉把思路弄明白很重要...汗 又给大家添麻烦了...小菜菜告退...


特此感谢三位版主对小菜鸟长期以来的帮助 他们是 jellen(类痴狂人 ) tempnetbar(J湖散人 )和Anstey (排名不分先后) 呵呵,这些日子让小菜鸟受益非浅。 忠心的谢谢您们!
2004-08-14 17:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-4163-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.075227 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved