与任何程序设计语言一样,java使用条件语句和循环结构确定控制流。本文将简单讲解条件、循环和switch。
一、块作用域
块(block),即复合语句。是指由一对大括号括起来的若干条简单的java语句。块确定了变量的作用域。
比如:
1 public class code { 2 static 3 { 4 system.out.println(1); 5 } 6 { 7 system.out.println(2); 8 } 9 public code()10 {11 system.err.println(3);12 }13 public static void main(string[]args)14 {15 new code();16 }17 }
注意:不能在嵌套的两个块中声明同名的变量。
二、条件语句
格式1:
if(condition)
{
statement1
statement2
........
}
例如:
1 if(yousales>=target)2 {3 performance=satisfactory;4 bonus=1000;5 }
格式2:
if(condition)statement1 else statement2
例如:
1 if(yousales>=target) 2 { 3 performance=“satisfactory”; 4 bonus=100+10*(yousales-target“); 5 } 6 else 7 { 8 performance=”unstatisfactory“; 9 bonus=0;10 }
三、循环
当条件为true时,while循环执行。
格式1:
while(condition)statemnet
例如:
1 while (balance<goal)2 {3 balance+=payment;4 double interest=balance*interestrate/100;5 balance+=interest;6 years++;7 }
格式2:
do statement while(condition);
1 do 2 { 3 balance+=payment; 4 double interest=balance*interestrate/100; 5 balance+=interest; 6 7 year++; 8 9 system.out.printf("after year %d,your balance is %,.2f%,year,balance");10 11 system.out.print("ready to retire?(y/n)");12 input=in.next();13 }14 while(input.equals("n"));15 16 }
四、确定循环
for循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代的次数。
格式类似如下:
for(int i=0;i<x.length;i++)
system.out.println(i);
例子4个:
1 public class shuzu1 { 2 public static void main(string[]args){ 3 int [][] x={{1,2,2,2,2},{3,3,3,3,3},{4,5,-1,17,55}}; 4 int result=qiuhe(x); 5 system.out.println("和是"+result); 6 } 7 public static int qiuhe(int[][]x){ 8 int s=0; 9 for(int i=0;i<x.length;i++)10 {11 for(int j=0;j<x[i].length;j++)12 {13 s+=x[i][j];14 }15 }16 return s;17 }18 }
1 public class shuzu2 { 2 public static void main(string[]args){ 3 int [][] x=new int[7][7]; 4 //生成随机数组,注意没有返回值,另外打印一行字 5 suiji(x); 6 system.out.println("生成的数组是:"); 7 8 //显示数组内容,注意没有返回值 9 showarray(x);10 11 //取值12 float result=getavg(x);13 system.out.println("平均数是"+result);14 15 }16 static float getavg(int [][] x){17 float s=0;18 for(int i=0;i<x.length;i++){19 for(int j=0;j<x[i].length;j++){20 s+=x[i][j];21 }22 }23 return s/(x.length*x[0].length);24 }25 static void suiji (int[][]x){ //这里我出错了。返回值写了int型,不应该的。思考一下。26 for(int i=0;i<x.length;i++){27 for(int j=0;j<x[i].length;j++){28 x[i][j]=(int)(math.random()*10);29 }30 }31 }32 static void showarray(int[][]x){ //这里我出错了。返回值写了int型,不应该的。思考一下。33 for(int i=0;i<x.length;i++){34 for(int j=0;j<x[i].length;j++){35 system.out.print(x[i][j]+"\t");// 给数据空格36 }37 system.out.println();//打印换行38 }39 }40 }
1 import java.util.arrays; 2 public class suzu3{ 3 public static void main(string[] args) { 4 int [] x={2,-1,7,777,6,764,85896,65554,0,874785,417825,74};
5 sort(x,'n'); 6 for(int i=0;i<x.length;i++){ 7 system.out.print(x[i]+"\t"); 8 } 9 }10 //给数组进行选择性排序11 //调用api进行升序12 static void sort(int[]x,char flag){13 if('a'==flag){14 arrays.sort(x);15 }16 else {17 for(int i=0;i<x.length-1;i++){18 for(int j=0;j<x.length-1-i;j++){19 int temp=0;20 if(x[j]<x[j+1]){21 temp=x[j];22 x[j]=x[j+1];23 x[j+1]=temp;24 }25 }26 }27 }28 }29 }
1 import java.util.scanner; 2 3 public class suzu4 { 4 public static void main(string[] args) { 5 system.out.println("请输入");//这个命令只能紧贴在scanner scan = new scanner(system.in);的上面或下面才有效。 6 scanner scan = new scanner(system.in); 7 //system.out.println("请输入");或者放在scanner scan = new scanner(system.in);的下面 8 string str = scan.nextline();// nextline才是接收一行 9 10 char[] s = str.tochararray();// 把字符串转换称一个字符数组11 scan.close();12 int lettercount = 0;13 int numbercount = 0;14 int spacecount = 0;15 int othercount = 0;16 for (int i = 0; i < s.length; i++) {17 if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'a' && s[i] <= 'z') {18 lettercount++;19 } else if (s[i] >= '1' && s[i] <= '9') {20 numbercount++;21 } else if (s[i] == ' ') {22 spacecount++;23 } else {24 othercount++;25 }26 }27 system.out.println(字母有 + lettercount + 个);28 system.out.println(数字有 + numbercount + 个);29 system.out.println(空格有 + spacecount + 个);30 system.out.println(其他有 + othercount + 个);31 }32 }//ctrl+shift+f 是代码格式化33 //ctrl+shift+o 是导包
五、多重选择:switch语句
格式类似如下:
switch(choice)
{
case 1:
........
break;
case 2:
.......
break;
.........
//可以再来几个case(用break结束一下)
default:
.......
break;
}
注意:
case标签可以是:
* 类型为char、byte、short或int的常量表达式。
* 枚举常量
* 从java se 7开始,case标签还可以是字符串字面量。
以上就是java使用条件语句和循环结构的详细介绍的详细内容。
