JAVA基础----循环,选择结构

来源:互联网 发布:中国传媒大学南广 知乎 编辑:程序博客网 时间:2024/05/29 21:28

"稍微提一点"

  运算符中还有一个三元运算符 

    如下:

l 格式
(关系表达式)?表达式1:表达式2;
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2; 

/*
需求:
获取两个整数中的最小值

获取三个整数中的最大值
比较两个整数是否相同
*/

class OperatDemo6{

public static void main(String[] args){

int a =99;
int b =88;
//int c = (a>b)?a:b;

int c = (a < b)?a:b;

System.out.println(c);
}
}





1. 流程控制语句
1. 顺序结构--从上到下执行,默认
2. 选择结构
1. if
  1. 格式一: 
if(关系表达式){
 执行语句;

如下: 
/*
选择结构
if语句:
第一种格式:
if(关系表达式){

执行语句;
}
判断关系表达式为true,走执行语句;
判断关系表达式为false,绕过执行语句;

*/

class IfDemo{
public static void main(String[] args){
int x =11;
//if判断
if (x!=11){
System.out.println("x真的为11");
}
System.out.println("over");
}
}

  2. 格式二:
if(关系表达式){
执行语句1;
} else{
执行语句2;
}
如下:
/*
b:判断一个数据是奇数还是偶数,
并输出是奇数还是偶数
If格式二
if(关系表达式){
执行语句1;
}else{
执行语句2;
}

执行流程:
判断关系表达式,真-->执行语句1;
  假-->执行语句2;


优化:使用键盘录入
*/


//导包
import java.util.Scanner;
class IfDemo2{


public static void main(String[] args){
//创建对象
Scanner sc = new Scanner(System.in);


//定义两个变量
// int a = 77;
// int b = 88;


//使用数据
System.out.println("请输入第一个数据...");
int a = sc.nextInt();


System.out.println("请输入第二个数据...");
int b = sc.nextInt();


//判断a 和b 是否相等,输出提示


if (a==b){
System.out.println("这两个数是相等");
}else{
System.out.println("这两个数是不等");
}


System.out.println("over");
}
}




   3. 格式三 :
if(关系表达式1){
执行语句1;
}else if(关系表达式2){
执行语句2;
}... else{
执行语句 n+1;
}
如下 :
/*
if第三种格式:多种条件的判断


if (关系表达式1){
执行语句1;
}else if(关系表达式2){
执行语句2;

}else if(关系表达式3){
执行语句3;
}
 ....
 else{

执行语句n+1;
}

演示
//需求:键盘录入一个成绩,判断并输出成绩的等级。
90-100 优秀
80-89  好
70-79  良
60-69  及格
0-59   不及格
分析:
1.键盘录入,三步骤
2.多个条件判断,if第三种格式
3.在执行语句输出 

总结:
1.在测试程序的时候,先使用正常值,和临界值 
2.再使用超出范围,错误的值 
*/
//导包
import java.util.Scanner;
class IfDemo3{


public static void main(String[] args){
//创建对象
Scanner sc = new Scanner(System.in);


//接收数据
int score  = sc.nextInt();


if ( score >=90 && score <=100){
System.out.println("优秀");
}else if (score >=80 && score <=89){
System.out.println("好");
}else if (score >=70 && score <=79){
System.out.println("良");
}else if (score >=60 && score <=69){
System.out.println("及格");
}else if (score >=0 && score <=59){
System.out.println("不及格");
}else{
System.out.println("您的考试分数异常");
}


System.out.println();
}
}
   4. if格式二嵌套使用
如下:
/*


获取两个数据中较大的值


方式1: 三元
方式2: if 


总结:
1.当赋值运算的时候,三元和if是可以等价互换的
2.当直接输出的时候,三元是实现不了的.


if还是比较强大,三元酌情使用.


*/


import java.util.Scanner;
class IfDemo4{


// public static void main(String[] args){
//
// int x =10;
// int y =20;
//
// //定义较大值变量
// //三元方式
// int max  = (x>y)?x :y;
//
// System.out.println("较大的值为:"+max);
//
// System.out.println("--------------");
//
// //if 方式
//
// int max2;
// if (x>y){
// max2 = x;
// }else{
// max2 = y;
// }
//
// System.out.println("较大的值为:"+max2);
// }






public static void main(String[] args){
//创建对象
Scanner sc = new Scanner(System.in);


int num = sc.nextInt();


//判断
if (num %2 !=0 ){
System.out.println("这个数字为奇数");
}else{
System.out.println("这个数字为偶数");
}


System.out.println();


//三元方式
// String s = (num % 2==0)?System.out.println("这个数字为偶数"):System.out.println("这个数字为奇数");


String s = (num % 2==0)?"这个数字为偶数":"这个数字为奇数";
System.out.println(s);

}
}


注意:
/*


if的注意事项:
1.关系表达式,无论格式简单还是复杂,结果必须是boolean类型
2.当执行语句是一行的时候,我们的大括号是可以省略,因为大括号控制了一行的执行语句,建议大家永远不要省略.
3.一般来说:有左大括号就没有分号,有分号就没有左大括号
*/


class IfNotice{


public static void main(String[] args){
int x =6;


// if (x=5){  //  不兼容的类型
// System.out.println("---");
// }


//
// if (x!=5)
// System.out.println("省略了大括号");
// System.out.println("over");
//
if (x==5); 
{  
System.out.println("---");
}
}
}




2. switch


1. 格式:
switch (表达式) {
case 值1: 
执行语句1; 
break;
... 
default :
执行语句n+1;
break;
}
2. 如果break省略,可能造成case穿透
3. 如果default省略,可能造成异常数据无法处理
4. case值的必须是常量,不能是变量 
注意 : JDK5以后可以是枚举
JDK7以后可以是字符串 
/*


练习:字符串(根据给定串输出对应值)
String  s =  sc.nextLine();


hello
您输入的是 hello 


world 
您输入的是 world 


java 
您输入的是 java 


敲吧
敲吧敲吧...  


*/


//导包
import java.util.Scanner;
class SwitchTest2{


public static void main(String[] args){


//创建对象
Scanner sc = new Scanner(System.in);


//接收收据--字符串
String ss = sc.nextLine();


//switch判断


switch (ss){ // 表达式
case "hello":
System.out.println("您输入的是 hello ");
break;
case "world":
System.out.println("您输入的是 world ");
break;

case "java":
System.out.println("您输入的是 java ");
break;

case "敲吧":
System.out.println("敲吧敲吧~");
break;
}
}
}




3. 循环结构
(1)有三种:for,while,do...while
(2)for循环语句
A:格式
for(初始化语句;判断条件语句;控制条件语句){
循环体语句;
}

执行流程:
a:执行初始化语句
b:执行判断条件语句
如果这里是true,就继续
如果这里是false,循环就结束
c:执行循环体语句
d:执行控制条件语句
e:回到b
B:注意事项
a:判断条件语句无论简单还是复杂,结果是boolean类型
b:循环体语句如果是一条,可以省略大括号,但是不建议
c:有分号就没有左大括号,有左大括号就没有分号
(3)while循环
A:基本格式
while(判断条件语句) {
循环体语句;
}

扩展格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}

通过查看这个格式,我们就知道while循环可以和for循环等价转换。
B:for和while的区别
a:使用上的区别
for语句的那个控制条件变量,在循环结束后不能在使用了。
而while的可以继续使用。
b:理解上的区别
for适合于一个范围的判断
while适合次数不明确的
(4)do...while循环
A:基本格式
do {
循环体语句;
}while(判断条件语句);

扩展格式:
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);

通过查看格式,我们就可以看出其实三种循环的格式可以是统一的。
B:三种循环的区别
a:do...while循环至少执行一次循环体
b:for和while必须先判断条件是否是true,然后后才能决定是否执行循环体
(5)循环使用的注意事项(死循环)
A:一定要注意修改控制条件,否则容易出现死循环。
B:最简单的死循环格式
a:while(true){...}

b:for(;;){}
4:控制跳转语句(掌握)
(1)break:中断的意思
A:用在循环和switch语句中,离开此应用场景无意义。
B:作用
a:跳出单层循环
b:跳出多层循环,需要标签语句的配合
(2)continue:继续
A:用在循环中,离开此应用场景无意义。
B:作用
a:跳出单层循环的一次,可以继续下一次

(3)return:返回
A:用于结束方法的,后面还会在继续讲解和使用。
B:一旦遇到return,程序就不会在继续往后执行。


0 0