数据类型的强制转换
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;才会结