在java中goto是意思,关于Java中的goto语句

自学Java遇到的问题1

goto语句的问题

1.1 背景

2.1 尝试

3.1 总结

goto语句的问题

今天是我自学Java第4天,开始写博客记录学习中遇到的问题。给后来者一些借鉴,也给自己以后回过来在看这些问题提供资料。

1.1 背景

我是先自学过一段时间C++,然后隔了很长一段时间没碰代码,重新学的Java,最近学到if语句的时候,想实现一个“输入错误,重新输入!”的功能,首先想到了标签功能。因为在C语言体系中,可以用goto语句来实现的。然后我在Java中尝试了一下。

2.1 尝试

就上面的问题,我尝试了一下,代码如下:

import java.util.*;

public class IfTest03{

public static void main(String[] args){

Scanner in = new Scanner(System.in);

int weather = 0;

//输入天气

lable1:

System.out.print("请输入外面的天气 1雨天 2晴天:");

weather = in.nextInt();

if (weather != 1 && weather != 2){

System.out.println("天气输入出错,请重新输入!");

goto lable1;

}

编译结果

IfTest03.java:24: 错误: 非法的表达式开始

goto lable1;

^

IfTest03.java:24: 错误: 不是语句

goto lable1;

^

2 个错误 ## 2.2 尝试 本着不会就问度娘的原则,百度了一番,发现在Java语言中,goto是一个保留的关键字,但是不能用,也没有作用。后来看到一种说法是可以和break/continue一起使用,尝试了一下: ```javascript lable1: do { System.out.print("请输入外面的天气 1雨天 2晴天:"); weather = in.nextInt(); if (weather != 1 & weather != 2){ System.out.println("天气输入出错,请重新输入!"); break lable1; }else{ break; } }while (true); ``` 编译运行结果不理想,输入1可以,输入2逻辑出问题,但是后面的逻辑没问题。 >请输入外面的天气 1雨天 2晴天:2 天气输入出错,请重新输入! 请输入您的性别 1男生 2女生:

请输入外面的天气 1雨天 2晴天:3 //这边考虑是执行了break,直接跳过了。

天气输入出错,请重新输入!

请输入您的性别 1男生 2女生:

把“break lable1;”改成“continue lable1;”逻辑就通畅了。

//输入天气

lable1:

do {

System.out.print("请输入外面的天气 1雨天 2晴天:");

weather = in.nextInt();

if (weather != 1 & weather != 2){

System.out.println("天气输入出错,请重新输入!");

continue lable1;

}else{

break;

}

}while (true); 运行结果: >请输入外面的天气 1雨天 2晴天:3 天气输入出错,请重新输入! 请输入外面的天气 1雨天 2晴天:2 请输入您的性别 1男生 2女生:1 ## 2.3 优化 百度的过程中,发现其实可以直接用循环就可以了,也不用标签什么的,麻烦! 最后的代码如下: ```javascript //输入天气 while(true){ System.out.print("请输入外面的天气 1雨天 2晴天:"); weather = in.nextInt(); if (weather != 1 && weather != 2){ System.out.println("天气输入出错,请重新输入!"); }else{ break; } } ```

3.1 总结

不会一定要问,虽然不一定是度娘。

Java中(其他语言也差不多吧)的goto语句可以用循环代替,仔细思考其中的逻辑,其实就是:输入错误重新输入,重在一个重新的重,再跟循环的逻辑比对一下,循环不就是重复嘛。想通了。

不会的还是要多尝试

本人是初学者,最后代码虽然说是优化,但应该还有改进的地方

以上内容纯手打,码字不易,如需转载请声明出处,谢谢!

作者:LouisHaoL

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值