选择与循环语句
一般程序结构分为3种:顺序结构、选择结构、循环结构。
①顺序结构:程序自上而下逐行执行。
②选择结构包括if、if…else及switch语句
Ⅰ.if语句的格式
if(判断条件){
语句1;
...
语句2;
}
Ⅱ.if…else语句的格式
if(判断条件){
语句主体1;
}else{
语句主体2;
}
例如:用if…else语句判断一个数字是奇数还是偶数
public class Test1{
public static void main(String[] args){
int x=5; //定义整型变量x
if(x%2==1){ //判断余数是否为1
System.out.println(“x是奇数!”);
}else{
System.out.println(“x是偶数!”)
}
}
}
运行结果:
x是奇数!
Ⅲ.switch语句格式
switch(表达式){
case 选择值1; 语句主体1;
break;
case 选择值2; 语句主体2;
break;
...
case 选择值n; 语句主体n;
break;
default 语句主体;
}
根据表达式的值检测是否符合执行case后面的选择值,一直遇到break语句后才离开switch语句。若没有defalut语句,则什么也不执行,直接离开switch语句。
③循环结构包括while循环、do…while循环及for循环
Ⅰ.while循环
while(循环条件判断){
语句1;
语句2;
...
语句n;
循环条件更改;
}
Ⅱ.do…while循环
do{
语句1;
语句2;
...
语句n;
循环条件更改;
}while(循环条件判断);
Ⅲ.for循环
对于while和do…while循环来讲,操作时并不一定非要明确的知道循环的次数,而如果已知明确的知道循环次数的话,那么使用for循环语句
for(赋值初值;判断条件;赋值增减量){
语句1;
语句2;
...
语句n;
}
总结:for用于已知循环次数,while用于已知循环结束条件。do{ }while语句用于例如商场打折,会员折上折的例子
循环的中断
分为两种:break语句、continue语句
①break语句可以强迫程序中断循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句
②continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,即会停止运行剩余的循环主体,而是回到循环的开始处继续运行。
数组
数组:创建之前先说明大小,数组有角标从0开始,在内存中排放为连续内存空间
动态数组,静态数组
静态数组赋值:
int[] array = {1,2,3,4,5}
动态数组赋值:
int[] arrays = new int[5];
arrays[0] = 1;
arrays[1] = 2;
...
对于"容器"操作,一般我们分成三种操作类型:
一:定位;
二:替换;
三:求长;
目前我们看到的是数组,数组的定位,替换,求长分别是:
int[] arrays = new int [6];
//数组的定位
int item = arrays [4];
int item2 = arrays [6];//错误
int item3 = arrays [-1];//错误
//数组的替换
arrays [3] = 100;
//求长
int length = arrays.length;
数组遍历——增强式for循环 for(int x:y)
y中依次给x
排序算法
①直接排序
```java
import java.util.*;
public class Sort{
public static void main(String[]args){
int[] arrays = {12,22,34,56,11};
for(int i = 0;i<arrays.length;i++){
for(int j = i;j<arrays.length;j++){
if(arrays[i]<arrays[j]){
int temp = arrays[j];
arrays[j] = arrays[i];
arrays[i] = temp;
}
}
}
System.out.print(Arrays.toString(arrays));//遍历的另一种写法,需要引入包(import java.util.*;)
/**for(int m=0;m<arrays.length;m++){
System.out.print(arrays[m]+" ");
}//数组遍历的普通写法
*/
}
}
②冒泡排序
import java.util.*;
public class Bsort{
public static void main(String[]args){
int[] arrays ={12,13,14,15,17,22,25};
for(int i = 0;i<arrays.length;i++){
for(int j = 0;j<arrays.length-i-1;j++){
if(arrays[j]<arrays[j+1]){
int temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
}
System.out.println("第"+i+"趟排序第"+j+"次结果:"+arrays);
}
System.out.println("第"+i+"趟排序结束:"+Arrays.toString(arrays));
}
System.out.println(Arrays.toString(arrays));
}
}
③选择排序
public class Ssort{
public static void main(String[] args){
int [] arrays = {45,55,165,175,85};
for(int i=0;i<arrays.length;i++){
int Onemax = arrays[i];
int index = i;
for(int j=i;j<arrays.length;j++){
if(Onemax < arrays[j]){
Onemax = arrays[j];
index = j;
}
}
int Toomax = arrays[i];
arrays[i] = arrays[index];
arrays[index] = Toomax;
}
for(int m=0;m<arrays.length;m++){
System.out.print(arrays[m]+" ");
}
}
}
扫描器
import java.util.*;
Scanner scanner=new scanner(System.in);
int heads = scanner.nextInt();
int feets = scanner.nextInt();