《JAVA:从入门到精通》part 3

五、运算符以及控制结构

运算符

        由于JAVA里面的运算符大多数与C语言中的相似,所以在此只需要注意一些跟C语言不同的以及我不太熟悉的运算符。

三元运算符

        三元运算符也称三目运算符,它的运算符是“?:”,有三个操作数。操作流程:首先判断条件,如果条件满足,就会赋予一个变量一个指定的内容(冒号之前的),不满足就会赋予变量另外的一个内容(冒号之后的),其操作语法如下:


        数据类型    变量=布尔表达式?条件满足设置内容:条件不满足设置内容;


        举个例子帮助理解:

public class lianxi

{

public static void main (String args[])

    {

        int x =10;

        int y =20;

        int result = x>y?x:y;

        System.out.println("1st result = "+result);

        x=50;

        result=x>y?x:y;

        System.out.println("2nd result = "+result);

    }

}

运行结果:

        由结果可以看到,第一个三元运算符那里判断条件x>y?,此时x是小于y的,故选择y的值给予输出;第二个三元运算符那也是判断条件x>y?,但是前面一行程序给x重新赋值,此时x是大于y的,故选择x的值给予输出。

        另外需要注意的是逻辑运算符(&&、||、!)与位运算符(&、|、^、~)的区别。逻辑运算符只对布尔型操作数进行运算并返回一个布尔型数据。也就是说,逻辑运算符的操作数和运算结果只能是真(true)或者假(false)。

        &和&&、|和||的区别:

        对于“与操作”:有一个条件不满足,结果就是false。普通与(&):所有的判断条件都要执行;短路与(&&):如果前面有条件已经返回了false,不再向后面判断,那么最终结果就是false。

        对于“或操作”:有一个条件满足,结果就是true。对于普通或(|):所有的判断条件都要执行;短路或(||):如果前面有条件返回了true,不再向后判断,那么最终结果就是true。

控制结构

        JAVA的程序控制结构主要有选择结构、循环结构以及循环的跳转。有之前语言学习的基础,这些控制结构的含义和使用方法已经有了足够了解,所以只需要学习JAVA中这些结构有关语句的语法就行。

if语句:


        if(判断条件)

        {

                语句1

        ...

                语句n

        }


if...else语句:


        if(条件表达式)

        {

                语句块1

        }

        else

        {

                语句块2

        }


switch语句:


        switch(表达式)

        {

                case常量选择值1:语句体1 {break;}

                case常量选择值2:语句体2 {break;}

                ......

                case常量选择值n:语句体n {break;}

                default:默认语句体

        }


while语句:


        while(判断条件)

        {

                语句1;

                ......

                语句n;

        }


do...while语句:


        do{

                语句1;

                ......

                语句n;

         }while(判断条件)


for语句:


        for(赋初始值;判断条件;增减标志量)

        {

                语句1;

                ......

                语句n;

        }


        另外需要注意带标签的continue语句:


        continue  标签名;


        continue后的标签,必须标识在循环语句之前,使程序的流程在遇到continue之后,立即结束当次循环,跳入标签所标识的循环层次中,进行下一轮循环。

        举个例子帮助理解:

public class lianxi

{

public static void main (String args[])

    {

    for(int i=0;i<2;i++)

        {

            System.out.println("最外层循环"+i);

            loop:

            for(int j=0;j<2;j++)

                {

                System.out.println("中间层循环"+j);

                for(int k=0;k<2;k++)

                    {

                    System.out.println("最内层循环"+k);

                    continue loop;

                    }

                }

           }

    }

}

运行结果:

        现在程序输出为10行,如果去掉loop标签,则输出有14行。

        那是因为有了loop标签之后,continue语句会使程序跳到loop标签那执行,这样就少执行了最内层循环语句。

        return语句可以使程序的流程离开return语句所在的方法,到目前为止所写的程序都只有一个main方法(方法类似于C语言中的函数),所以目前就认为return语句就是使程序结束的语句。

        本周的学习就到这里了,为了巩固本周学习的知识,下面做了几个编程题作为实战练习。

实战练习:

        1. 随机输入一字母,利用位运算实现该字母的形式转换(小写\rightarrow 大写,大写\rightarrow 小写),若输入不为字母则报错,且继续输入,直到输入正确。

import java.util.Scanner;

public class lianxi2

{

    public static void main(String args[])

    {

        String a=null;

        int c;

        Scanner input=new Scanner(System.in);

        System.out.println("请输入字母:");

        while(true)

            {

            a = input.next();

            char b = a.charAt(0);

            if ((b >='a')&&(b<='z'))

                {

                int d=b;

                c=d-32;

                b=(char)c;

                System.out.println("转化后的字母为:"+b);

                break;

                }

            else if((b>='A')&&(b<='Z'))

                {

                int d=b;

                c=d+32;

                b=(char)c;

                System.out.println("转化后的字母为:"+b);

                break;

                }

            else

                {

                    System.out.println("输入错误!请重新输入:");

                }

            }

       }

}

运行结果:


大写转小写

                            

小写转大写

        2. 随机输入一个年份,判断其是不是闰年。

import java.util.Scanner;

public class lianxi2

{

    public static void main(String args[])

    {

        int a;

        int c;

        Scanner input=new Scanner(System.in);

        System.out.println("请输入一个年份:");

        a = input.nextInt();

        if(a%100==0)

            {

                if(a%400==0)

                {

                    System.out.println(a+"年是闰年");

                  }

                else

                {

                    System.out.println(a+"年不是闰年");

                  }

              }

        else

        {

            if(a%4==0)

            {

                    System.out.println(a+"年是闰年");

            }

            else

            {

                    System.out.println(a+"年不是闰年");

            }

        }

    }

}

运行结果:

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351

推荐阅读更多精彩内容

  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,311评论 0 9
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,852评论 0 2
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,952评论 0 9
  • 1 顺序语句 语句:使用分号分隔的代码称作为一个语句。 注意:没有写任何代码只是一个分号的时候,也是一条语句,...
    哈哈哎呦喂阅读 376评论 0 0
  • 第一章 初识javaJAVA 第一讲:什么是程序?:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的...
    人子日月几点阅读 510评论 0 1