打印out of memory while expanding_Java基础之for和while的区别,关于这些,你们知道吗?...

8a9cbb8e285ed7279bd0ad8e5971b40f.png

for和while

 for和while都可以互相代替

 固定的循环次数、数据规律变化,用for

猜数字

已经产生了一个[1, 1001)范围的随机整数

请猜这个数是几

285

猜:1

猜:999

猜:2

猜:285

项目:day0405_猜数字

类:day0405.Test1

package day0405;

import java.util.Random;

import java.util.Scanner;

public class Test1 {

public static void main(String[] args) {

//产生随机整数

// 1+ [0, 1000) --> [1, 1001)

// 1+ {0,1,2,3,4,5...999}

int r = 1+ new Random().nextInt(1000);

System.out.println(r);

System.out.println(

"已经产生了一个[1, 1001)范围的随机整数");

System.out.println("请猜这个数是几");

while(true) {

System.out.print("猜:");

int c = new Scanner(System.in).nextInt();

if(c > r) {

System.out.println("大");

} else if(c < r) {

System.out.println("小");

} else {

System.out.println("对");

break;

}

}

}

}

方法的返回值

 一个方法,可以有计算结果

 在调用位置,可以获得方法的计算结果返回值

 void

 空,没有返回值

 有返回值,需要定义返回值的数据类型

int f() {

}

String f() {

}

 如果定义了返回类型,必须返回值

int f() {

int x = 1;

if(x == 1) {

return 6;

}

return -1;

}

方法返回值

项目:day0406_方法返回值

类:day0406.Test1

package day0406;

public class Test1 {

public static void main(String[] args) {

System.out.println("-- 1");

int r = f(2);

System.out.println(r);

System.out.println("-- 3");

System.out.println(f(4));

System.out.println("-- 5");

System.out.println(4 + f(6));

}

private static int f(int i) {

return i*i;

}

}

定义一个方法,从email地址中,提取名字部分

sdfsdf@sdsdf.com

Test2

package day0406;

import java.util.Scanner;

public class Test2 {

public static void main(String[] args) {

System.out.println("输入email:");

String e = new Scanner(System.in).nextLine();

//email地址e,传递到该方法,

//并得到方法返回的名字,保存到变量n

String n = getName(e);

System.out.println(n);

}

static String getName(String email) {

/*

* "sdfwerw@rewerwe.com"

* |

* index

*

* 1. 定位 "@" 的下标位置 index

* 2. 截取 [0, index),直接返回

*

* email.indexOf("@")

* 查找指定子串的位置

* 找不到,得到特殊值 -1

* email.substring(0, index)

* 截取 [0, index)

*/

//找@的位置

int index = email.indexOf("@");

if(index == -1) {//找不到

return "格式错误";

}

//截取,直接返回截取的结果

return email.substring(0, index);

}

}

数组

 用来存放一组数据的数据结构

 数组创建(3种语法)

 int[] a = new int[5];

 新建5个长度的 int[] 数组

 5个位置,存默认值 0

 把数组的地址,存到变量a

 int[] a = {5,2,6,7,1,2,3};

 为存在的数组变量,重新赋一个新的数组,并且,直接初始化数组数据

a = new int[]{4,6,1};

 数组的长度属性

 a.length

 数组一旦创建,长度不可变

 数组长度,可以是0

 最大下标是 a.length - 1

 数组的遍历

 从头到尾,依次访问每一个位置

for(int i=0; i

a[i]

}

数组

项目:day0407_数组

类:day0407.Test1

package day0407;

import java.util.Arrays;

public class Test1 {

public static void main(String[] args) {

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

f1();

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

f2();

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

f3();

}

private static void f1() {

//新建 int[],长度5

//再把它的内存地址,存到变量a

int[] a = new int[5];

System.out.println(a[2]);

a[2] = 6;

//打印数组的全部数据

//Arrays.toString(a)

//把数组所有数据,连接成字符串

// "[0, 0, 6, 0, 0]"

System.out.println(Arrays.toString(a));

}

private static void f2() {

char[] a = {'a', 'b', 'c'};

System.out.println(Arrays.toString(a));

a = new char[]{'h','e','l','l','o'};

System.out.println(Arrays.toString(a));

}

private static void f3() {

int[] a = {6, 7, 8, 9, 10};

// 交换 1 和 3 位置的值

int t = a[1];

a[1] = a[3];

a[3] = t;

System.out.println(Arrays.toString(a));

}

}

Test2

package day0407;

import java.util.Arrays;

import java.util.Random;

public class Test2 {

public static void main(String[] args) {

//调用f()方法,从方法获取一个int[]数组

int[] a = f();

//遍历打印数组数据

for(int i=0; i

System.out.println(a[i]);

}

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

//把a数组,传递到 shuffle() 方法打乱顺序

shuffle(a);

System.out.println(Arrays.toString(a));

}

private static void shuffle(int[] a) {

/*

* j

* [4, 2, 3, 1, 5]

* i

*

* *) i循环遍历数组

* *) 随机定位下标j与i交换

*/

for (int i = 0; i < a.length; i++) {

//随机下标j,范围:[0, a.length)

int j = new Random().nextInt(a.length);

int t = a[i];

a[i] = a[j];

a[j] = t;

}

}

private static int[] f() {

//新建int[]数组,长度5

//再把它的内存地址存到变量 a

int[] a = new int[5];

//遍历访问5个位置,填入1,2,3,4,5

for(int i=0; i

a[i] = i+1;

}

//返回数组,把数组返回到调用位置

//本质是把数组地址返回去

return a;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值