您的位置:首页 > 编程语言 > Java开发

java基础知识总结2三种常见的结构

2017-03-04 14:46 489 查看
任何程序都是由顺序结构 选择结构 循环结构

顺序结构 常见的结构

选择结构(单选择结构 双选择结构 多选择结构)

1单选择结构--if语句

if(条件)

{

   //语句

}

if语句对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳过该语句                                                          

{

   double i = 6 * Math.random();

    double j = 6 * Math.random();

    double k = 6 * Math.random();

    int count = (int) (i + j + k);

    if(count > 15)

{

    System.out.println("今天手气不错");

 }

    if(count >= 10 && count <= 15)

{   //错误写法:10<count<15

    System.out.println("今天手气很一般");

 }

    if(count < 10)

{

    System.out.println("今天手气不怎么样");

 }

System.out.println("得了" + count + "分");

}

注 if语句后最好加上括号 只有一句可以不加

Math类的使用:

    int i = (int) (6 * Math.random()); //产生:[0,5]

2双选择结构if--else语句当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。

if(条件)//满足条件执行语句1

{

   //语句1

}

else     //不满足条件执行语句2

{

  //语句2

}

{

double r = 4 * Math.random();

    double area = Math.PI * Math.pow(r, 2);

    double circle = 2 * Math.PI * r;

    System.out.println("半径为: " + r);

    System.out.println("面积为: " + area);

    System.out.println("周长为: " + circle);

    if(area >= circle) {

    System.out.println("面积大于等于周长");

    } else {

    System.out.println("周长大于面积");

}

3多选择结构--If-elseif-else逐条if语句进行判断,条件匹配,进入语句体

否则对if语句继续匹配

if(布尔表达式1)

{

    语句块1;

}

else if(布尔表达式2)

{

    语句块2;

}………

 else if(布尔表达式n)

{

    语句块n;

}

else

{

    语句块n+1;

}

public class Test

{

    public static void main(String[] args)

{

    int age = (int) (100 * Math.random());

    System.out.print("年龄是" + age + ", 属于");

 if (age < 15)

{

    System.out.println("儿童, 喜欢玩!");

}

else if (age < 25)

{

    System.out.println("青年, 要学习!");

}

else if (age < 45)

{

    System.out.pri
4000
ntln("中年, 要工作!");

}

else if (age < 65)

{

    System.out.println("中老年, 要补钙!");

}

else if (age < 85)

{

    System.out.println("老年, 多运动!");

}

else

{

    System.out.println("老寿星, 古来稀!");

}

}

}

4多选择结构--switch语句

根据表达式值的不同执行许多不同的操作

Switch语句:case标签必须是整数(byte,short,char,int)或者枚举,JDK7的新特性,

表达式结果可以是字符串!!!

根据表达式的值,从一系列代码选出一段执行。格式如下:

switch (表达式)

{

 case 值1:

  语句序列;

  break;

 case 值2:

   语句序列;

  break;

 default:

   默认语句;

}

switch语句会根据表达式的值从相匹配的case标签处开始执行,一直执行到break语句处或者是switch语句的末尾。与任一case值不匹配,则进入default语句(如果有的话)

public class Test

{

 public  static void main(String[] args)

{

  Scanner in  = new Scanner(System.in);

  System.out.print("请输入你的成绩");

  int xz = in.nextTnt();

 switch(xz)

 {

  case 1:

  {

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

   break;//如果取消break则会出现case穿透现象

  }

  case 2:

  {

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

   break;

  }

  case 3:

  {

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

   break;

  }

 }

}

循环结构

While循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,

都会在开始前重新计算一次。

while (布尔表达式)

{

  循环体;

}

public class WhileTest {

    public static void main(String[] args) {

    int  i = 0;

    int  sum = 0;

    while (i <= 100) {   // 1+2+3+…+100=?

    sum += i;   //sum = sum+i;

    i++;

    }

    System.out.println("Sum= " + sum);

    }

}

Do-while循环(用的很少,了解!!)基本格式:                    

do

{

  循环体;

} while(布尔表达式) ;

                               

do-while循环说明

1.    先执行循环体

2.    后判断布尔表达式

3.    循环体至少执行一次

public class Test {

    public static void main(String[] args) {

    int i = 0;

    int sum = 0;

do {

    sum += i; // sum = sum + i

    i++;

} while (i <= 100);

    System.out.println("Sum= " + sum);

}

}

While和do-While的区别:

while先判断后执行。dowhile是先执行后判断!

Dowhile总是保证循环体会被至少执行一次!这是他们的主要差别。

For循环for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构,语法形式 :

for (初始表达式;布尔表达式;步进)

{

 循环体;

}

1.初始化部分设置循环变量的初值

2.条件判断部分为任意布尔表达式

3.迭代因子控制循环变量的增减

注意for循环在执行条件测试后,先执行程序部分,再执行步进。

public class TestWhileFor02

{//打印九九乘法表

    public static void main(String[] args)

{

    for (int m = 1; m <= 9; m++)

{

    for (int i = 1; i <= m; i++)

{

    System.out.print(i + "*" + m + "=" + (i * m) + "\t");

}

    System.out.println();

}

}

}

public class Test {

 public static void main(String[] args) {

//计算0到100之间的奇数和偶数的和

  int oddSum = 0;  //用来保存奇数的和

  int evenSum = 0;  //用来存放偶数的和

  for(int i=0;i<=100;i++){

   if(i%2!=0){

    oddSum += i;

   }else{

    evenSum += i;

   }

   

  }

  System.out.println("奇数的和:"+oddSum);

  System.out.println("偶数的和:"+evenSum);

  

  System.out.println("#########################");

 //用while和for循环输出1-1000之间能被5整除的数,并且每行输出3个

  for(int j = 1;j<=1000;j++){

   if(j%5==0){

    System.out.print(j+"\t");

   }

   if(j%(5*3)==0){

    System.out.println();

   }

  }

  

 }

}

break语句

? 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

  

//循环输出随机数,直到输出88为止!

public class BreakTest {

 public static void main(String[] args) {

  int total = 0;

  System.out.println("Begin");

  while (true) {

   total++;

   int i = (int) Math.round(100 * Math.random());

   if (i == 88)

    break;

  }

  System.out.println("Game over, used " + total + " times.");

 }

}

两种常见的语句

continue语句

? continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

//把100~150之间不能被3整除的数输出:

public class ContinueTest {

 public static void main(String[] args) {

     for (int i = 100; i < 150; i++) {

   if (i % 3 == 0)

    continue;

   System.out.println(i);

     }

 }

}

带标签的break和continue语句

(了解即可)

1. goto关键字很早就在程序设计语言中出现。尽管goto仍是Java的一个保留字,但并未在语言中得到正式使用;Java没有goto。然而,在break和continue这两个关键字的身上,我们仍然能看出一些goto的影子---带标签的break和continue。

2. “标签”是指后面跟一个冒号的标识符,例如:label:

3. 对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

4. 带标签的break和continue的例子:

 public class PrimeNumber {    //打印101-150之间所有的质数

 public static void main(String args[]) {

    int count = 0;

  outer: for (int i = 101; i < 150; i ++) {

     for (int j = 2; j < i / 2; j++) {

       if (i % j == 0)

         continue outer;

     }

     System.out.print(i+ "  ");

     

    }

 }

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: