java基础知识:数据类型,switch语句,分支结构

 

数据类型的强制转换

Public class Example2{

      int i=97;

       char c=(char)i;              //类型的强制转换

       System.out.println("c="+c);

}

 

百分制成绩录入的对话框

import javax.swing.JOptionPane;//对话框弹出需要的包中的方法

public class TestCondinitionalOperator{

       public static void main(String args[]){

              int score;

              score=Integer.parseInt(JOptionPane.showInputDialog("请输入百分制成绩:"));//Integer.parseInt()方法将数字的字符串标识形式转换为其等效的有符号整数。

              String result=(score>=60)?"及格":"不及格";

              System.out.println(result);

       }

}

数据类型的范围:。。。。。。。。。

流程控制语句

无论哪种编程语言,都会提供3种基本的流程控制结构——顺序结构、分支结构、循环结构。其中分支结构用于实现根据条件来选择性地执行某段代码,循环结构则用于根据循环条件重复执行某段代码。

顺序结构:任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行。这意味着:如果没有流程控制,java方法中的语言室一个顺序执行流,从上向下依次执行每条语句(即根据语句出现的先后顺序依次执行)。

分支结构:根据条件从两个分支或多个分支中选择其中其一执行。先判定菱形框中的条件,当条件成立时,执行<语句1>,当条件不成立时,执行<语句2>.

 

循环结构:满足某一条件时重复执行,知道条件不满足。先判断菱形框中的条件,当条件成立时,反复执行<语句>,直到条件不成立退出循环,执行下一个基本结构。

Java同样也提供了用于实现分支和循环结构的语句。

分支语句:if和switch

循环语句:while、do while、for和foreach;

其中foreach循环是JDK5.0提供的一种新的循环语句,能以简单的方式来遍历集合、数组的元素。

public class TestIfError{

       public static void main(String args[]){

              int score=85;

              if(score>=90){

                     System.out.println("优秀");

              }else if(score>=80){

                     System.out.println("良好");//注意if 、else fi 的顺序,如果颠倒则只会执行及格那条语句

              }else if(score>=60){

                     System.out.println("及格");

              }

       }

}

如果每次都去计算if条件和else条件的交际也是一件非常繁琐的事情,为了避免出上面的错误,在使用ifelse语句时有一条基本规则——总是有限把包含范围小的条件放在前面处理。如score>=80和score>=60连个条件,明显score>=80的范围更小,所以应该先处理score>=80的情况。

Switch分支语句

Switch语句有一个控制表达式和多个case标签组成。和if语句不通的是,swirch语句后面的控制表达式的数据类型只能是整形或字符型,而不能是boolean型。Case标签后紧跟一耳光代码块,case标签作为这个代码块的标识,switch语句的语法格式如下:

Switch(expression){

       Case condition1:{

              Statement(s)

              Break;

 

}

       Case condition2:{

              Statement(s)

              Break;

}

….

Case condition:{

              Statement(s)

              Break;

}

Default:{

              State,emt(s)

}

}这种分支语句的执行是先对expression求职,然后依次匹配condition1,condition2…conditionN等值,遇到匹配的值即执行对应的 执行体,如果所有case标签后的值都不与expression表达式的值相等,则执行default标签偶的代码块。

public class TestSwitch{

       public static void main(String args[]){

              //声明变量score,并为其赋值为‘C’

              char grade='C';

              //执行switch分支语句

              switch(grade){

                     case 'A':

                            System.out.println("优秀");

                            break;

                     case 'B':

                            System.out.println("良好");

                            break;

                     case 'C':

                            System.out.println("中");

                            break;

                     case 'D':

                            System.out.println("及格");

                            break;

                     case 'E':

                            System.out.println("不及格");

                            break;

                     case 'F':

                            System.out.println("优秀");

                            break;

                     default:

                            System.out.println("成绩输入错误");

              }

       }

}运行上满程序,输出结果为“中“。这个结果完全正常,字符表达式score的值为C,对应结果为‘中’。

值得指出的是,switch语句中控制表达式的类型只能是byte、short、char和int,而不能是字符串,这与C#中有所不通。

在case标签后的每个代码块后都有一条break;语句了,这个break;语句有着极其重要的意义。Java的switch语句允许省略case后代码块的break;语句,但是这种省略可能引入一个陷阱。吐过把上面程序中的break;语句都注释掉,运行结果会有所出入。

这个结果看起来比较奇怪,但这正是由switvh语句的运行流程决定的:switch语句会先求出expression表达式的值,然后拿这个表达式和case标签后的值进行比较,一旦遇到相等的值,程序变开始执行该case标签后的代码,而不再判断与偶棉case、default标签的条件时佛偶匹配,除非遇到break;才会结

你可能感兴趣的:(java,string,class,语言,编程,import)