1.break输出1-100顺序相加大于20的当前数
public class Hello{
public static void main(String[] args){
int n=0;
int sum=0;
for(int i=1;i<=100;i++){
sum+=i;
if(sum>20){
n=i;
break;
}
}
System.out.println(n);
}
}
用break判断能否成功登录
import java.util.Scanner;
public class Hello{
public static void main(String[] args){
Scanner myScanner=new Scanner(System.in);
String name="";
String passwd="";//先定义
int chance=3;
for(int i=1;i<=3;i++){
System.out.println("请输入名字");
name=myScanner.next();
System.out.println("请输入密码");
passwd=myScanner.next();
//比较字符串的内容输入是否正确::equals
//String name=" "(定义)
//name.equals(" ")或者".equals(name)"
if("八重".equals(name)&&"666".equals(passwd)){
System.out.println("登陆成功");
break;
}
chance--;
System.out.println("还有"+chance+"次登陆机会");
}
}
}
十万块钱过几个路口
public class Hello{
public static void main(String[] args){
double mon=100000;
int sum=0;
while(true){
if(mon>50000){
mon*=0.95;
sum++;
}
else if(mon>=1000&&mon<50000){
mon-=1000;
sum++;
}
else{
break;
}
}
System.out.println("路口数为"+sum);
}
}
2.continue语句
3.return语句:return用在方法表示退出方法,用在main语句表示退出程序
4.判断水仙花数
public class Hello{
public static void main(String[] args){
int n=153;
int a=n%100/10;//十
int b=n%10;//个
int c=n/100;//百
if(n==a*a*a+b*b*b+c*c*c){
System.out.println("是");
}
else{
System.out.println("不是");
}
}
}
5.数组
double[] grade={10,20,30};//下标从0开始
//grade[0]=10
//grade.length获得数组长度
//数组中数据的数据类型必须相同
int[] a=new int[5];//第一种动态分配方式:数组名为a,存放5个int
//第二种动态分配方式:数组先声明,再创建
int[] a;
a=new int[3];
//第三种:静态初始化
int[] a={10,20,30};
//数组没有赋值时,有默认值char /u0000,String null,boolean false
//数组属于引用数据类型,数组型数据的本质是对象(object)
6.循环输入5个数,并输出
double[] num=new double[5];
Scanner myScanner=new Scanner(System.in);
for(int i=1;i<=num.length;i++){
System.out.println("请输入第"+(i+1)+"个元素的值");
num[i]=myScanner.nextDouble();
}
for(int i=1;i<=num.length;i++){
System.out.println("第"+(i+1)+"个元素的值为"+num.[i]);
}
7.数组最大值
8.数组赋值:引用传递,赋的值是地址,赋值方式为引用传达
int[] arr1={1,2,3};
int[] arr2=arr1;//数组arr2的变化会影响arr1
9.数组拷贝
int[] arr1={10,20,30};
int[] arr2=new int[arr1.length];
for(int i=1;i<arr1.length;i++){
arr2[i]=arr1[i];
}
//修改arr2不会对arr1有影响
10.数组反转
(1:下标调换)
(2:新建数组)
int[] arr2=new int[arr.length];
for(int i=arr.length-1,j=0;i>=0;i--,j++){
arr2[j]=arr[i];
}
arr=arr2;
11.数组扩容
int[] arr1={1,2,3};
int[] arr2=new int[arr1.length+1];
for(int i=1;i<arr1.length;i++){
arr2[i]=arr1[i];
}
arr2[arr2.length-1]=4;
arr=arr2;
12.数组扩容循环添加
Scanner myScanner=new Scanner(System.in);
int[] arr={1,2,3};
do{
int[] arrNew=new int[arr.length+1];
for(int i=0;i<arr.length;i++){
arrNew[i]=arr[i];
}
System.out.println("请输入要添加的元素");
int addNum=myScanner.nextInt();
arrNew[arrNew.length-1]=addNum;
arr=arrNew;
System.out.println("====扩容后===");
for(int i=0;i<arrNew.length;i++){
System.out.print(arr[i]+"\t");
}
System.out.println("是否继续添加?");
char key=myScanner.next().charAt(0);//取第一个字符
if(key=='n'){
break;
}
}whuile(true);
System.out.println("你退出了添加");
13.冒泡排序
14.顺序查找
String[] names={"敕","咒禁","律令","显化","留形"};
Scanner myScanner=new Scanner(System.in);
System.out.println("请输入要查找的名字");
String findName=myScanner.next();
int index=-1;
for(int i=0;i<names.length;i++){
if(findName.equals(names[i])){
System.out.println("恭喜你找到了,下标为"+i);
index=i;
break;
}
}
if(index==-1){
System.out.println("抱歉,没有找到"+findName);
}
15.二维数组
int[][] grade={{1,2},{3,4}};//下标从0开始
//grade.length获得数组长度
int[][] a=new int[5][3];//第一种动态分配方式:数组名为a,存放5个int,每个int有三个值
//第二种动态分配方式:数组先声明,再创建
int[][] a;
a=new int[3][4];
//静态初始化:直接赋值
int[][] arr={{1,1},{2,2},{3,3}};
int[] x,y[];
//x:一维数组,y:二维数组
16.创建二维数组{{0},{1,1},{2,2,2}}
int[][] arr=new int[3][];
for(int i=0;i<arr.length;i++){
arr[i]=new int[i+1];//为每个一维数组分配内存空间
}
for(int j=0;j<arr[i].length;j++){
arr[i][j]=i;
}
//遍历,输出
for(int i=0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
}
17.数组细节