thinking in java逍遥游记 之 夜的第四章 - 控制执行流程
总结: 1. 本章基本上没有什么东西,主要掌握一些基本的语法,熟悉基本的执行过程!
应用: 1 . 关于吸血鬼的问题
2. 使用outer跳出多存循环
易错点:1. continue是跳出本次循环,重新开始下一次的循环
2. break跳出最内一层的循环,
3. return 直接跳出整个方法。
public class ForTest {
public static void main(String[] args) {
for(char c = 0;c<128;c++){ //注意:字符可以用数字表示的
if(Character.isLowerCase(c)){
System.out.println((int)c+" "+"Character="+c); //字符也可以转化为int类型
}
/*
* 97 Character=a
98 Character=b
99 Character=c
...
121 Character=y
122 Character=z
*/
}
}
}
public class WhileTest {
static boolean getRandomBoolean(){
boolean b = Math.random()< 0.99;
System.out.println(b);
return b;
}
public static void main(String[] args) {
while(getRandomBoolean()){
System.out.println("哈哈,看来你小子是真的"); //默认生成大于0.99的数为真的
}
}
}
public class LabelTest {
/**
* @author: huxin
* 关于标签outer和inner的使用
*/
public static void main(String[] args) {
int i = 0;
outer:
while(true){
System.out.println("我开始了inner");
while(true){
i++;
if(i==1){
System.out.println("continue");
continue; //这次循环不走了,开始下一次循环
}
if(i==2){
System.out.println("continue inner");
continue outer;
}
if(i==3){
System.out.println("break");
break;
}
if(i==4){
System.out.println("break outer");
break outer;
}
}
}
}
}
//本章练习题目
import java.util.Random;
import static java.lang.Math.*;
//本程序写得很糟糕,仅仅测试之用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
public class Practice {
public static void main(String[] args) {
//第一题:循环打印出1-100的值。
for(int i = 1;i<=100;i++){
System.out.println(i);
}
//第二题:随机生成100以内的正整数,然后使用if,else比较其紧跟的值得大小
Random random = new Random();
int j =0;
for(int i =0;i<25;i++){
int k = random.nextInt(100);
if(i==0){
System.out.print(k);
j = k;
}else{
if(k>j){
System.out.print("<"+k);
j=k;
}else if(k==j){
System.out.print("="+k);
}else{
System.out.print(">"+k);
j=k;
}
}
}
//第三题: 对于一个死循环,使用 Ctrl+C 来中断程序的运行
//第四题:使用两个for循环,和取余操作符来打印素数
for(int i=1;i<=100;i++){
boolean flag = false;
if(i==1||i==2){
flag = false;
}else{
for(int c =2;c<=sqrt(i);c++){
if(i%c==0){
flag = true;
break;
}
}
}
if(flag){
continue;
}
System.out.println(i);
}
switchTest();
}
//练习九,测试break
private static void switchTest(){
Random random = new Random(47); //关于Random的种子问题还没有弄清楚啊
int c = random.nextInt(26)+'a'; //根据字符串上下文进行转换
System.out.println((char)c);
for(int i=0;i<3;i++){
switch(c){
case 'a': System.out.println("aaaaa");
case 'y': System.out.println("yyyyy"); break;
case 'z': System.out.println("zzzzz"); break; //其实switch中的break不能终止for循环。
default: System.out.println("hahah"); break;
}
}
}
}
//吸血鬼的问题
import java.util.Arrays;
public class Vampire {
public static void main(String[] arg) {
String[] ar_str1;
String[] ar_str2;
int sum = 0;
int from;
int to;
int i_val;
int count = 0;
// 双重循环穷举
for (int i = 10; i <50; i++) {
for (int j = 10; j <100; j++) {
i_val = i * j;
if (i_val % 100 == 0 || (i_val - i - j) % 9 != 0) {
continue; //跳过这一次循环,到下一次循环。
}
count++;
ar_str1 = String.valueOf(i_val).split("");
ar_str2 = (String.valueOf(i) + String.valueOf(j)).split("");
Arrays.sort(ar_str1);
Arrays.sort(ar_str2);
if (Arrays.equals(ar_str1, ar_str2)) { // 排序后比较,为真则找到一组
sum++;
System.out.println("第" + sum + "组: " + i + "*" + j + "=" + i_val);
}
}
}
System.out.println("共找到" + sum + "组吸血鬼数");
System.out.println(count);
}
}
更多相关文章
- 算法 - 给出一个字符串str,输出包含两个字符串str的最短字符串,如
- Java字符与整形的转换问题
- java中 16进制字符串 与普通字符串 与 byte数组 之间的转化
- Jsp以get方式提交中文及特殊字符,javascript处理乱码问题
- 忽略转义字符时拆分字符串
- 使用字符串参数调用AndroidJni静态方法。
- java中匹配字符串中的中文字符(含中文标点的)
- Java中字符流和字节流到底有什么区别!!!
- java GBK字符转换成为UTF-8编码字符