我正在参加正式巡演。今天,我在做rot13reader 练习时遇到了一些奇怪的事情。
问题是当我使用break
而不是return ttl, io.EOF
,程序进入无限循环。但是,据我所知,在这个程序中,应该没有任何区别,break
或者return ttl, io.EOF
因为如果是break
,下一行将return ttl, err
在Read()
方法的末尾,这与return ttl, io.EOF
.
我想知道为什么。与 Go 如何处理 io.Reader 接口及其实现的底层机制有关吗?
这是代码。
package main
import (
"io"
"os"
"strings"
)
type rot13Reader struct {
r io.Reader
}
func (rr *rot13Reader) Read(b []byte) (n int, err error) {
rb := make([]byte, 8)
var ttl int
for {
n, err := rr.r.Read(rb)
if err == io.EOF {
return ttl, …
Run Code Online (Sandbox Code Playgroud) 我是 python 的初学者,我在使用这段代码时遇到了问题:
count = 0
while count <15:
if count == 5:
continue
print(count)
count += 1
Run Code Online (Sandbox Code Playgroud)
当 count 的值 = 5 时,它会停止循环,就像有一个break语句一样。为什么会这样呢?请帮忙!
我想问一下是否有可能阻止 IllegalArgumentException 中断程序运行。如果我做:
throw new
IllegalArgumentException("Value not
allowed!");
continue;
Run Code Online (Sandbox Code Playgroud)
触发异常后,这会阻止IAE破坏程序吗?如果没有,是否有任何方法可以将其作为错误消息抛出给用户,然后允许他们继续运行程序而无需重新运行?
假设我有 Java 代码
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getActionMasked()) {
case MotionEvent.ACTION_DOWN: {
if (something()) {
break;
}
// do more stuff here
break;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我为这样的东西重写了它,但我不确定它是正确的,它没有任何缺陷。
override fun onTouch(view: View, motionEvent: MotionEvent): Boolean {
when (motionEvent.actionMasked) {
MotionEvent.ACTION_DOWN -> {
if (something()) {
return false
}
// do more stuff here
}
}
return false
}
Run Code Online (Sandbox Code Playgroud)
在 kotlin 中break
像在 java switch 语句中一样模拟/实现的最佳方法是什么?
while True:
x = raw_input()
if x =="personal information":
print' Edward , Height: 5,10 , EYES: brown , STATE: IL TOWN: , SS:'
elif x =="journal":
name_of_file = raw_input("What is the name of the file: ")
completeName = "C:\\python\\" + name_of_file + ".txt"
file1 = open(completeName , "w")
toFile = raw_input("Write what you want into the field")
file1.write(toFile)
file1.close()
else:
break
Run Code Online (Sandbox Code Playgroud)
脚本继续给我一个错误,说break是在循环之外是缩进错了吗?
a=str(raw_input('Enter the word \n'))
def back_word(m):
b=len(m)
d=b-1
print m[d]
if d>0:
back_word(m)
d-1
else:
break
print back_word(a)
Run Code Online (Sandbox Code Playgroud)
我的目标是取一个字符串并向后打印字母,每行一个.我在循环错误之外得到了休息.任何人都可以更正我的代码并给出错误的原因吗?
当count变为9时,我想从两个for循环中退出.我使用break
它但它只能退出第一个for循环.怎么办?
ArrayList<String> list = new ArrayList<String>();
int count = 0;
System.out.println("Before entering to loop");
for(int i=0;i<5;i++){
list.add("XYZ"+i);
for( int j=0;j<5;j++){
list.add("ABC"+j);
count++;
if(count==9){
System.out.println("I want to exit from here.");
break;
}
System.out.println("i="+i+"::j="+j);
}
System.out.println("------------");
}
for(String str:list){
System.out.println(str);
}
}
Run Code Online (Sandbox Code Playgroud) 我想打破一个其他条件,如果它有一个内部if条件,如果内部if条件内部变为如下,请建议我一个方法.
if(condition1=true){
}
else if(condition2=true){
if(condition3=true){
do activity 1;
//I want to break here if condition3 is true, without executing activity 2 & 3
}
do activity 2;
do activity 3;
}
Run Code Online (Sandbox Code Playgroud) 我已经为程序创建了基本结构,但无论我尝试什么,我似乎都无法退出循环.
我还希望它显示用户输入的信息; 一旦我退出循环,从键盘到控制台,但我不知道如何做到这一点.
import java.util.Scanner;
public class Requirement1 {
public static void main(String[] args) {
Scanner scan = new Scanner (System.in);
String name, game, time, points;
int i = 0;
System.out.println("Please Enter Your Name");
name = scan.nextLine();
System.out.println("Players Name: " + name);
while (i < 100)
{
Scanner scan2 = new Scanner(System.in);
System.out.println("Please Enter a Game Name (If You Are Done type \"quit\")");
game = scan.nextLine();
System.out.println("Game: " + game);
Scanner scan3 = new Scanner (System.in);
System.out.println("Please Enter Your Score"); …
Run Code Online (Sandbox Code Playgroud) 我有以下方法:
public int quickFind (int[] nums, int lo, int hi) {
if (lo >= hi)
return -1;
int gard = nums[lo];
int i = lo + 1, j = hi + 1;
while (true) {
while (nums[++i] < gard) {
if (i == hi) {
System.out.println("break " + i + " / " + hi + " ->" + (i == hi));
break;
}
}
while (gard < nums[--j]) {
if (j == lo)
break;
}
if (i > j) …
Run Code Online (Sandbox Code Playgroud)